"必须声明标量变量' @ x'"绑定SQL参数时

时间:2014-04-03 04:41:48

标签: c# sql sql-server

我在视觉工作室出错时错误是“必须声明标量变量'@PhNo',我无法猜到我拼错的地方。我希望这会清除我的错误, 提前致谢。 :):)

C#代码:

string Name = Session["Username"].ToString();
con.Open();
SqlCommand Update_cmd = new SqlCommand("Update RegisterUser set FullName = @Name, PhoneNo = @PhNo ,EmailId = @ID WHERE UserName = '"+Name+"'", con);
Update_cmd.Parameters.AddWithValue("@Name",txtFullName.Text);
Update_cmd.Parameters.AddWithValue("@PhNo",txtPhNo.Text);
Update_cmd.Parameters.AddWithValue("@ID", txtMailID.Text);
Update_cmd.ExecuteNonQuery();
lblResultMsg.Text = "Your Profile has been successfully saved";
con.Close();

1 个答案:

答案 0 :(得分:0)

            using (SqlConnection con = new SqlConnection(_connectionString))
            {
                string qry = @"UPDATE dbo.RegisterUser SET FullName = @Name, PhoneNo = @PhNo, EmailId = @EID FROM dbo.RegisterUser WHERE UserName = @Name";
                using (SqlCommand cmd = new SqlCommand(qry, con))
                {
                    cmd.Parameters.AddWithValue("@Name", SqlDbType.NVarChar).Value = txtFullName.Text;
                    cmd.Parameters.AddWithValue("@PhNo", SqlDbType.NVarChar).Value = txtPhNo.Text;
                    cmd.Parameters.AddWithValue("@EID", SqlDbType.Int).Value = (int)txtMailID.Text;
                    cmd.CommandType = CommandType.Text;
                    con.Open();
                    cmd.ExecuteNonQuery();
                }
            };

您还可以考虑使用Prepare方法来执行sql语句。