Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

Must declare the scalar variable "@ScenarioID"

Posted on 2009-04-06
5
Medium Priority
?
1,916 Views
Last Modified: 2012-05-06
[SqlException (0x80131904): Must declare the scalar variable "@ScenarioID".]
   System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) +1950890
   System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +4846875
   System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) +194
   System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +2392
   System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async) +192
   System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe) +317
   System.Data.SqlClient.SqlCommand.ExecuteNonQuery() +137
 
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="EditExample_formview.aspx.cs" Inherits="EditExample" %>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
<script runat="server">
 
    protected void Page_Load(object sender, EventArgs e)
    {
        string connString = "Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=SADB;Data Source=KENLAPTOP\\sqlexpress";
 
            sqlDataSource1.ConnectionString = connString;
        // AccessDataSource1.DataFile = "~/App_Data/AccountInfo.mdb";
            sqlDataSource1.SelectCommand = "SELECT Scenario.* from Scenario";
           // sqlDataSource1.UpdateCommand = "UPDATE Scenario SET BusinessStartYear =?, ReportingStart = ?, ReportingEnd = ?, FilterString = ? WHERE ScenarioID = ?";
                sqlDataSource1.DeleteCommand="DELETE FROM Scenario WHERE ScenarioID = @ScenarioID";
          //  AccessDataSource1.InsertCommand="INSERT xxx  = ?";
       //  InsertCommand="INSERT INTO [DMM_ArcWeb] ([ID], [Status], [MALLNAME], [MALLCODE], [StateName], [DMANAME], [CBSANAME], [Latitude], [Longitude], [Link]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"    
 
            sqlDataSource1.UpdateParameters.Add("BusinessStartYear", "DateTime");
            sqlDataSource1.UpdateParameters.Add("ReportingStart", "DateTime");
            sqlDataSource1.UpdateParameters.Add("ReportingEnd", "DateTime");
            sqlDataSource1.UpdateParameters.Add("FilterString", "String");
            sqlDataSource1.DeleteParameters.Add("ScenarioID", "Int32");
    }
</script>
1
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <asp:GridView ID="GridView1" runat="server" AllowPaging="True" DataKeyNames="ScenarioID" 
        DataSourceID="sqlDataSource1" PageSize="16" AllowSorting="True" AutoGenerateColumns="true" >
            <Columns>
                <asp:CommandField ShowDeleteButton="True" ShowEditButton="True" />
            </Columns>
        </asp:GridView>
        <asp:SqlDataSource ID="sqlDataSource1" runat="server">
        </asp:SqlDataSource>
 
 
 
 
        <asp:DetailsView ID="DetailsView1" runat="server" AllowPaging="True" 
            DataSourceID="sqlDataSource1" Height="50px" Width="125px" 
            AutoGenerateDeleteButton="True" 
            AutoGenerateInsertButton="True" 
            AutoGenerateEditButton="True">
            
        </asp:DetailsView>
 
 
 
 
    </form>
</body>
</html>

Open in new window

0
Comment
Question by:goodk
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
  • 2
5 Comments
 
LVL 96

Expert Comment

by:Bob Learned
ID: 24083597
When does this occur?  Which part of the SqlDataSource comes into play when you get that error?
0
 

Author Comment

by:goodk
ID: 24083754
sqlDataSource1.DeleteCommand="DELETE FROM Scenario WHERE ScenarioID = @ScenarioID";

Kindly, guide me to improve the code, this code worked for Access but I am having hard time with sql.  Please also see Update and Insert
0
 
LVL 96

Expert Comment

by:Bob Learned
ID: 24086389
Here is a possibility:

Must declare the scalar variable @ID
http://fabdata.wordpress.com/2007/03/23/must-declare-the-scalar-variable-id/
0
 

Author Comment

by:goodk
ID: 24093447
           GridView1.DataKeyNames="ScenarioID";
does not work!
0
 
LVL 96

Accepted Solution

by:
Bob Learned earned 1500 total points
ID: 24098991
You are adding DeleteCommand parameters in code, and not in HTML, so I believe that you need to add the '@', which gets handled by the SqlDataSource automagically.

            sqlDataSource1.UpdateParameters.Add("@BusinessStartYear", "DateTime");
            sqlDataSource1.UpdateParameters.Add("@ReportingStart", "DateTime");
            sqlDataSource1.UpdateParameters.Add("@ReportingEnd", "DateTime");
            sqlDataSource1.UpdateParameters.Add("@FilterString", "String");
            sqlDataSource1.DeleteParameters.Add("@ScenarioID", "Int32");
0

Featured Post

How to Use the Help Bell

Need to boost the visibility of your question for solutions? Use the Experts Exchange Help Bell to confirm priority levels and contact subject-matter experts for question attention.  Check out this how-to article for more information.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

One of the pain points with developing AJAX, JavaScript, JQuery, and other client-side behaviors is that JavaScript doesn’t allow for cross domain request for pulling content. For example, JavaScript code on www.johnchapman.name could not pull conte…
IntroductionWhile developing web applications, a single page might contain many regions and each region might contain many number of controls with the capability to perform  postback. Many times you might need to perform some action on an ASP.NET po…
This course is ideal for IT System Administrators working with VMware vSphere and its associated products in their company infrastructure. This course teaches you how to install and maintain this virtualization technology to store data, prevent vuln…
This tutorial will teach you the special effect of super speed similar to the fictional character Wally West aka "The Flash" After Shake : http://www.videocopilot.net/presets/after_shake/ All lightning effects with instructions : http://www.mediaf…

721 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question