[Webinar] Streamline your web hosting managementRegister Today

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1994
  • Last Modified:

Must declare the scalar variable "@ScenarioID"

[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
goodk
Asked:
goodk
  • 3
  • 2
1 Solution
 
Bob LearnedCommented:
When does this occur?  Which part of the SqlDataSource comes into play when you get that error?
0
 
goodkAuthor Commented:
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
 
Bob LearnedCommented:
Here is a possibility:

Must declare the scalar variable @ID
http://fabdata.wordpress.com/2007/03/23/must-declare-the-scalar-variable-id/
0
 
goodkAuthor Commented:
           GridView1.DataKeyNames="ScenarioID";
does not work!
0
 
Bob LearnedCommented:
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

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

  • 3
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now