【发布时间】:2012-03-06 13:00:38
【问题描述】:
我正在尝试使用名为 PopulateGrid()(如下)的方法填充 GridView,但不断收到相同的服务器错误“必须声明标量变量“@QUALID”。
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”。
描述:执行过程中发生了未处理的异常 当前的网络请求。请查看堆栈跟踪以获取更多信息 有关错误的信息以及它在代码中的来源。
异常详细信息:System.Data.SqlClient.SqlException:必须声明 标量变量“@QUALID”。
来源错误:
第 282 行:数据集 ds = new DataSet();
第 283 行:da.Fill(ds, "Qual_Levels");
如果有人能说明情况,我将不胜感激!
【问题讨论】:
-
感谢所有回复,普遍的共识似乎是我在我的 sql 参数中缺少@,但已经尝试过并且抛出了同样的错误。此外,我的语法与最初为我的下拉列表发布的语法完全相同。