一个或多个参数没有价值吗?

时间:2013-01-18 18:36:48

标签: c# asp.net oledbexception

我在gridview中有一个buttonfield,当我按下该按钮时它从第一列获取id值,我在select语句中使用该id来从表中获取数据,但是我得到了这个错误“No Value给出一个或多个参数“

protected void grdData_SelectedIndexChanged(object sender, EventArgs e)
{
    GridViewRow row = grdData.SelectedRow;
    string id = row.Cells[1].Text;           

    try
    {
        conn.ConnectionString = conn_string;

        conn.Open();

        mySQLCommand.Connection = conn;
        mySQLCommand.CommandText = "Select [Movie_Description],[Movie_Image] from Movie_tbl where Movie_ID = @Movie_ID";
        mySQLCommand.Parameters.Add("@Movie_ID", OleDbType.VarChar).Value = id;

        myDataReader = mySQLCommand.ExecuteReader();

        if (myDataReader.Read())
        {

            txtDescription.Text = myDataReader["Movie_Description"].ToString();

        }
        else
        {
            txtDescription.Text = "No Such Movie";

        }

    }
    catch (Exception ex)
    {

        throw ex ;
    }

}

1 个答案:

答案 0 :(得分:0)

我没有太多使用mySQL,但我很确定你不需要OleDbType.VarChar参数。我没有看到在MS Access之外使用的。尝试:

mySQLCommand.Parameters.AddWithValue("@Movie_ID", id);

如果失败,可以尝试

mySQLCommand.Parameters.Add(new MySqlParameter("@Movie_ID", id));

mySQLCommand在您的代码中属于MySqlCommand类型,对吗?