C# SQLException必须是declar标量变量@“变量名称”;

C# SQLException必须是declar标量变量@“变量名称”;,c#,sqlexception,scalar,C#,Sqlexception,Scalar,我在尝试更新特定行的数据库时遇到一些问题,我收到错误必须声明标量变量“@lvl”。不太清楚我该做什么。我需要在SQL语句中声明值吗 private void button1_Click(object sender, EventArgs e) { GridViewCellInfo grd = (GridViewCellInfo)radGridView1.Rows[0].Cells[0]; string lvl = grd.Value.ToString(); string

我在尝试更新特定行的数据库时遇到一些问题,我收到错误
必须声明标量变量“@lvl”
。不太清楚我该做什么。我需要在SQL语句中声明值吗

private void button1_Click(object sender, EventArgs e)
{
    GridViewCellInfo grd = (GridViewCellInfo)radGridView1.Rows[0].Cells[0];
    string lvl = grd.Value.ToString(); 

    string sqlPatientCmd =
        @"UPDATE MotorTB
          SET RightColumn = @RightColumnCB, LeftColumn =  @leftColumnCB
          WHERE (Level = @lvl)";
    SqlConnection connString = new SqlConnection(@"Data Source=MERCURY\SQLEXPRESS;Initial Catalog=AsiaDB; Integrated Security=SSPI;User ID=MERCURY\Sophie;");
    try {
        connString.Open();

        SqlCommand sqlCmdStatement = new SqlCommand(sqlPatientCmd, connString);

        GridViewCellInfo grid;
        grid = (GridViewCellInfo)radGridView1.Rows[0].Cells[1];
        string rightColVal = grid.Value.ToString();

        grid = (GridViewCellInfo)radGridView1.Rows[0].Cells[2];
        string leftColVal = grid.Value.ToString();

        sqlCmdStatement.Parameters.AddWithValue("@rightColumnCB", rightColVal);
        sqlCmdStatement.Parameters.AddWithValue("@leftColumnCB", leftColVal);
        sqlCmdStatement.ExecuteScalar();
    } catch (Exception ex) {
        Console.WriteLine(ex.ToString());
    }

    // Close the connection
    try {
        connString.Close();
    } catch (Exception ex) {
        Console.WriteLine(ex.ToString());
    }
}

您需要将lvl变量添加为SQLParameter

sqlCmdStatement.Parameters.AddWithValue("@lvl", lvl);

@lvl需要作为参数提供或在查询中定义。

谢谢。我以前试过,但也犯了同样的错误。我将我的SQL语句更改为:我看不到新语句。错误消息将准确地告诉您如何解决此问题。。。