我有下面的代码,此代码更新gridview中的下拉列表。该数据库位于MS Access中 我收到错误:“参数@RateCenterName没有默认值。”
RateCenterID是主键
string updateSql = "UPDATE [RateCenters] " + "SET [RateCenterName] = @RateCenterName, [Province]= @Province, [QuantityThreshold] =@QuantityThreshold " + "WHERE [RateCenterID]=@RateCenterID";
string ratecenterID;
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
GridViewRow row = (GridViewRow)GridView1.Rows[e.RowIndex];
DropDownList ddl = (DropDownList)row.FindControl("DropDownList2");
TextBox rateCenterName = (TextBox)row.FindControl("TextBox1");
TextBox quantityThreshold = (TextBox)row.FindControl("TextBox2");
OleDbConnection conn = new OleDbConnection(ConfigurationManager.ConnectionStrings["DBConnection"].ToString());
OleDbCommand cmd = null;
try
{
conn.Open();
cmd = new OleDbCommand(updateSql, conn);
cmd.Parameters.Add("@RateCenterName", OleDbType.VarChar).Value = rateCenterName.Text;
cmd.Parameters.Add("@Province", OleDbType.VarChar).Value = ddl.SelectedValue;
cmd.Parameters.Add("@QuantityThreshold", OleDbType.VarChar).Value = quantityThreshold.Text;
cmd.Connection = conn;
cmd.ExecuteNonQuery();
GridView1.EditIndex = -1;
GridView1.DataBind();
}
catch (OleDbException ex)
{
throw (ex);
}
finally
{
cmd.Dispose();
conn.Close();
conn.Dispose();
}
}
请帮助我解决这个问题。
此致
阿琼
答案 0 :(得分:2)
您的查询需要四个参数(@RateCenterName
,@Province
,@QuantityThreshold
和@RateCenterID
),但您只需要传递三个参数。
@RateCenterID
缺失。
答案 1 :(得分:0)
您忘记了在where语句中使用的RateCenterID参数。
希望有所帮助
答案 2 :(得分:0)
您也应该传递@RateCenterID
。
答案 3 :(得分:0)
您忘记为@RateCenterID添加值。
答案 4 :(得分:0)
您已声明四个参数,但您只添加了三个。
您忘记添加@RateCenterID
参数。