Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Must declare the scalar variable "@LoggedInUser". Error when trying to add parameter to SqlDataSource

I am using SqlDataSource to show records based on the logged in user ,

<asp:SqlDataSource ID="ModifyCustomerDataSource" SelectCommand="SELECT cApplicationNo,cFirstName,cMiddleName,cLastName,nTelNo,nMobileNo,cPanGirNo from Data_Customer_Log where cAddedBy=@LoggedInUser" ConnectionString="<%$ ConnectionStrings:CwizDataConnectionString %>"   runat="server"></asp:SqlDataSource>

And in the Page Load I am adding the parameter as follows

protected void Page_Load(object sender, EventArgs e)
        {
            string user = HttpContext.Current.User.Identity.Name;
            ModifyCustomerDataSource.SelectParameters.Clear();
            ModifyCustomerDataSource.SelectParameters.Add("@LoggedInUser", user.Trim());
        }

But it gives me error

Must declare the scalar variable "@LoggedInUser".
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.Data.SqlClient.SqlException: Must declare the scalar variable "@LoggedInUser".

Can anybody point me out where I am going wrong. Thanks

like image 789
Priyank Patel Avatar asked Dec 21 '22 21:12

Priyank Patel


2 Answers

You do not need the @ when adding the parameter eg:

ModifyCustomerDataSource.SelectParameters.Add("LoggedInUser", user.Trim());

The @ symbol in the query indicates that the following text is the name of a parameter, however the @ is not considered part of the parameter name.

like image 132
Rich O'Kelly Avatar answered Dec 23 '22 09:12

Rich O'Kelly


<asp:SqlDataSource ID="ModifyCustomerDataSource" SelectCommand="SELECT cApplicationNo,cFirstName,cMiddleName,cLastName,nTelNo,nMobileNo,cPanGirNo from Data_Customer_Log where cAddedBy=@LoggedInUser" ConnectionString="<%$ ConnectionStrings:CwizDataConnectionString %>"   runat="server">

        <SelectParameters>

            <asp:Parameter Name="LoggedInUser" />

        </SelectParameters>

</asp:SqlDataSource>

Verify that you have SelectParameter defined in Sqldatasource as sample mentioned above.

You can set the value of parameter in two ways:

ModifyCustomerDataSource.SelectParameters["LoggedInUser"].DefaultValue = "some value";

or

ModifyCustomerDataSource.SelectParameters.Add("@LoggedInUser", user.Trim()); //@is must here with the parameter name
like image 43
Romil Kumar Jain Avatar answered Dec 23 '22 10:12

Romil Kumar Jain