我正在尝试使用一个名为PopulateGrid()的方法来填充GridView,但是一直遇到相同的服务器错误:“必须声明标量变量“@QUALID”。
GridView的声明如下所示:
public void PopulateGrid()
{
String val = TextBox2.Text;
String sql = "SELECT QLEVELNAME FROM Qual_Levels WHERE QUALID=@QUALID";
SqlCommand cmd = new SqlCommand(sql,
new SqlConnection(ConfigurationManager.ConnectionStrings["RecruitmentDBConnString"].ConnectionString));
cmd.Parameters.Add(new SqlParameter("QUALID", val));
cmd.Connection.Open();
SqlDataAdapter da = new SqlDataAdapter(sql, cmd.Connection);
DataSet ds = new DataSet();
da.Fill(ds, "Qual_Levels");
SelectionGrid.DataSource = ds;
SelectionGrid.DataBind();
ds.Dispose();
da.Dispose();
cmd.Connection.Close();
cmd.Connection.Dispose();
}
GridView的声明如下所示:
<asp:GridView ID="SelectionGrid"
autogeneratecolumns="False"
runat="server" CellPadding="4"
ForeColor="#333333" GridLines="None" DataKeyNames="QUALID">
<Columns>
<asp:BoundField DataField="QLEVELNAME" HeaderText="Level Name"
ReadOnly="True" SortExpression="name" />
</Columns>
</asp:GridView>
尝试了无数方法并搜索论坛后,我仍然遇到同样的错误。
'/'应用程序中的服务器错误。
必须声明标量变量“@QUALID”。
说明:在执行当前Web请求时发生未经处理的异常。请查看堆栈跟踪以获取有关错误和代码源的更多信息。
异常详细信息: System.Data.SqlClient.SqlException: 必须声明标量变量“@QUALID”。
源错误:
Line 282: DataSet ds = new DataSet();
Line 283: da.Fill(ds, "Qual_Levels");
如果有人能够解决这个问题,我将不胜感激!