Adnan Ghaffar
Adnan Ghaffar

Reputation: 1423

I am getting this Error: An SqlParameter with ParameterName '@FirstName' is not contained by this SqlParameterCollection

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

Upvotes: 1

Views: 1533

Answers (4)

C Sharper
C Sharper

Reputation: 8626

Try following:

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

Upvotes: 1

unlimit
unlimit

Reputation: 3752

You should use

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

Upvotes: 1

Satpal
Satpal

Reputation: 133403

Change you code as, You have not added parameter to command parameter collection.

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

Above perform both

Upvotes: 1

Anant Dabhi
Anant Dabhi

Reputation: 11104

you have to Add parameter first before assign value of parameter

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;

Upvotes: 2

Related Questions