我需要使用c#更新我的数据库值。但运行时会出现错误消息。原因可能是什么?
我有四个文本框值,分别称为txtName、txtId、txtAdd、txtTel。我需要更新数据库表中的现有记录。但代码不起作用。有人能帮我找出我的错误吗。这是我的密码我需要使用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
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
}