我需要使用c#更新我的数据库值。但运行时会出现错误消息。原因可能是什么?

我需要使用c#更新我的数据库值。但运行时会出现错误消息。原因可能是什么?,c#,C#,我有四个文本框值,分别称为txtName、txtId、txtAdd、txtTel。我需要更新数据库表中的现有记录。但代码不起作用。有人能帮我找出我的错误吗。这是我的密码 SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Users\User\documents\visual studio 2012\Projects\WindowsFormsApplication1\Win

我有四个文本框值,分别称为txtName、txtId、txtAdd、txtTel。我需要更新数据库表中的现有记录。但代码不起作用。有人能帮我找出我的错误吗。这是我的密码

SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Users\User\documents\visual studio 2012\Projects\WindowsFormsApplication1\WindowsFormsApplication1\Database4.mdf;Integrated Security=True");

try
{
    String name = txtName.Text;
    String id = txtId.Text;
    String address = txtAdd.Text;
    String tel = txtTel.Text;
    String SqlQuery = "UPDATE [Table]VALUES (@id,@name,@tel,@address)";
    SqlCommand cmnd = new SqlCommand(SqlQuery, con);
    con.Open();
    cmnd.ExecuteNonQuery();
    MessageBox.Show("Saved Successfully");
}
catch (Exception ex)
{
    MessageBox.Show("Error occured while saving" + ex);
}
finally
{
    con.Close();
}

请帮助我

您的
更新
语法错误。同时将
参数添加到
命令中

SQL更新语法:

更新表\u名称集column1=value1,column2=value2

其中,某个_列=某个_值


我想您可以尝试添加以下代码行来添加参数:

cmnd.Parameters.Add(new SqlParameter("@id", id);
cmnd.Parameters.Add(new SqlParameter("@name", name);
cmnd.Parameters.Add(new SqlParameter("@tel", tel);
cmnd.Parameters.Add(new SqlParameter("@address", address);
  • 您的更新查询错误。请看
  • TextBox
    值分配给某些字符串后,确保在此之后使用它们
  • 不需要手动编写(在您的情况下)
    最后{}
    块,使用
    using()
    语句代替它
  • 使用()将
    SqlCommand
    放入
    using()
  • 使用参数化查询
  • 试试这个:

    try
    {
        using(SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Users\User\documents\visual studio 2012\Projects\WindowsFormsApplication1\WindowsFormsApplication1\Database4.mdf;Integrated Security=True"))
        {
            con.Open();
            using(SqlCommand cmnd = con.CreateCommand())
            {
                // Your update query must look like something like this
                cmnd.CommandText = @"UPDATE [Table] 
                                     SET   Name = @name, 
                                           Tel = @tel, 
                                           Address = @address 
                                     WHERE Id = @id"; 
                cmd.Parameters.Add(new SqlParameter("@id", txtId.Text));
                cmd.Parameters.Add(new SqlParameter("@name", txtName.Text));
                cmd.Parameters.Add(new SqlParameter("@tel", txtTel.Text));
                cmd.Parameters.Add(new SqlParameter("@address", txtAdd.Text));
                cmnd.ExecuteNonQuery();
                MessageBox.Show("Saved Successfully");
            }
        }
    }
    catch(Exception ex)
    {
        //Handle your exception here 
    }
    

    请提供错误消息并详细描述问题。错误消息表明值附近存在无效语法。它是在调试时显示的。您甚至没有使用文本框值。可能是因为您没有设置参数的值。我不确定。你们能给我建议一个新的代码吗。
    try
    {
        using(SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Users\User\documents\visual studio 2012\Projects\WindowsFormsApplication1\WindowsFormsApplication1\Database4.mdf;Integrated Security=True"))
        {
            con.Open();
            using(SqlCommand cmnd = con.CreateCommand())
            {
                // Your update query must look like something like this
                cmnd.CommandText = @"UPDATE [Table] 
                                     SET   Name = @name, 
                                           Tel = @tel, 
                                           Address = @address 
                                     WHERE Id = @id"; 
                cmd.Parameters.Add(new SqlParameter("@id", txtId.Text));
                cmd.Parameters.Add(new SqlParameter("@name", txtName.Text));
                cmd.Parameters.Add(new SqlParameter("@tel", txtTel.Text));
                cmd.Parameters.Add(new SqlParameter("@address", txtAdd.Text));
                cmnd.ExecuteNonQuery();
                MessageBox.Show("Saved Successfully");
            }
        }
    }
    catch(Exception ex)
    {
        //Handle your exception here 
    }