参数没有默认值

时间:2012-02-22 10:14:24

标签: c# asp.net ms-access gridview drop-down-menu

我有下面的代码,此代码更新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();
        }
    }

请帮助我解决这个问题。

此致

阿琼

5 个答案:

答案 0 :(得分:2)

您的查询需要四个参数(@RateCenterName@Province@QuantityThreshold@RateCenterID),但您只需要传递三个参数。

@RateCenterID缺失。

答案 1 :(得分:0)

您忘记了在where语句中使用的RateCenterID参数。

希望有所帮助

答案 2 :(得分:0)

您也应该传递@RateCenterID

答案 3 :(得分:0)

您忘记为@RateCenterID添加值。

答案 4 :(得分:0)

您已声明四个参数,但您只添加了三个。

您忘记添加@RateCenterID参数。