我正在开发wpf应用程序,我需要插入和更新数据。我已经成功插入数据但是当我执行更新时遇到错误,例如期望参数' @ id',这是未提供的。我已经正确地给了所有的东西,但仍然得到同样的错误
我在下面给出了我的代码
存储过程代码
Alter procedure Updatedata
(
@id VARCHAR(10),
@name VARCHAR(10),
@address VARCHAR(10),
@city varchar(20),
@state VARCHAR(20),
@country varchar(10)
)
AS
BEGIN
update Employee set name= @name, address = @address, city = @city , state= @state, country = @country where id=@id
END
C#代码
private void btn_Update_Click(object sender, RoutedEventArgs e)
{
var con = new SqlConnection(strConnString);
SqlCommand cmd = new SqlCommand("Updatedata", con);
con.Open();
cmd.Parameters.AddWithValue(@"id", txt_id.Text);
cmd.Parameters.AddWithValue(@"name", txt_name.Text);
cmd.Parameters.AddWithValue("@address", txt_address.Text);
cmd.Parameters.AddWithValue("@city", txt_city.Text);
cmd.Parameters.AddWithValue("@state", txt_state.Text);
cmd.Parameters.AddWithValue("@country", txt_country.Text);
int row = cmd.ExecuteNonQuery();
con.Close();
}
答案 0 :(得分:3)
你的问题在这里:
cmd.Parameters.AddWithValue(@"id", txt_id.Text);
应该是
cmd.Parameters.AddWithValue("@id", txt_id.Text);
当你在这里时,也要改变它:
cmd.Parameters.AddWithValue(@"name", txt_name.Text);
到
cmd.Parameters.AddWithValue("@name", txt_name.Text);
您还需要将CommandType
的{{1}}设置为cmd
。
默认情况下,它以文本形式执行。
StoredProcedure