C# 我得到了这个错误:一个参数名为'@名字';不包含在此SqlParameterCollection中

C# 我得到了这个错误:一个参数名为'@名字';不包含在此SqlParameterCollection中,c#,sql-server,C#,Sql Server,在指定参数值之前,必须先添加参数 private void txtName_KeyDown(object sender, KeyEventArgs e) { SqlDataAdapter DA = new SqlDataAdapter("Search_Student", DBConnection.GetConnection()); DA.SelectCommand.CommandType = CommandType.StoredProcedure;

在指定参数值之前,必须先添加参数

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;
}           

在指定参数值之前,必须先添加参数

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;
}           

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

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;

执行上述两项操作将代码更改为,因为您尚未将参数添加到命令参数集合中

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;
执行以上两种操作

您应该使用

DA.SelectCommand.Parameters.AddWithValue("@FirstName", txtName.Text.Trim());
你应该使用

DA.SelectCommand.Parameters.AddWithValue("@FirstName", txtName.Text.Trim());
请尝试以下操作:

DA.SelectCommand.Parameters.Add("@FirstName", txtName.Text.Trim());
请尝试以下操作:

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

只是好奇。你不使用EntityFramework有什么原因吗?只是好奇而已。您不使用EntityFramework有什么原因吗?