2013-07-25 50 views
1
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; 
}   
+0

只是好奇。有沒有理由不使用EntityFramework之類的東西? –

回答

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

更改你代碼,您可以添加參數包含沒有將參數添加到命令參數收集中。

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

以上同時執行

1

您應該使用

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

嘗試以下操作:

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