我收到此错误:此SqlParameterCollection不包含带有ParameterName'@ FirstName'的SqlParameter

时间:2013-07-25 06:44:19

标签: c# sql-server

private void txtName_KeyDown(object sender, KeyEventArgs e)
{
    SqlDataAdapter DA = new SqlDataAdapter("Search_Student",
        DBConnection.GetConnection());
    DA.SelectCommand.CommandType = CommandType.StoredProcedure;                    
    DA.SelectCommand.Parameters["@FirstName"].Value = (txtName.Text).Trim();

    DataTable DA1 = new DataTable();
    DA.Fill(DA1);
    dataGridView1.DataSource = DA1;
}           

4 个答案:

答案 0 :(得分:2)

在分配参数值

之前,必须先添加参数
SqlDataAdapter DA = new SqlDataAdapter("Search_Student",
        DBConnection.GetConnection());
    DA.SelectCommand.CommandType = CommandType.StoredProcedure;                    


     SqlParameter param  = new SqlParameter();
     param.ParameterName = "@FirstName";
      param.Value  = txtName.Text;


    DA.SelectCommand.Parameters.Add(param);

    DataTable DA1 = new DataTable();
    DA.Fill(DA1);
    dataGridView1.DataSource = DA1;

答案 1 :(得分:1)

将代码更改为,您尚未将参数添加到命令参数集合。

DA.SelectCommand.Parameters.AddWithValue("@FirstName", txtName.Text.Trim());

以上同时执行

答案 2 :(得分:1)

你应该使用

DA.SelectCommand.Parameters.Add("@FirstName", txtName.Text.Trim());

答案 3 :(得分:1)

请尝试以下操作:

var paramFName = e.Command.CreateParameter("@FirstName", (txtName.Text).Trim());
e.Command.Parameters.Add(paramFName);