c# - 单击按钮更新

标签 c# sql winforms button sql-update

我有一个按钮,代码没问题,但是更新的时候出现错误。

这是代码:

private void button1_Click(object sender, EventArgs e)
{
   SqlConnection conn = new SqlConnection();
   conn.ConnectionString = "Data Source=PEWPEWDIEPIE\\SQLEXPRESS;Initial Catalog=master;Integrated Security=True";
   conn.Open();

   SqlCommand cmdC = conn.CreateCommand();
   cmdC.CommandText = "Update ComDet set cDetails = " + lblcDetails.Text + ", cDetails2 = '" + lblcDetails2.Text + "', PhoneNumber = '" + lblPhoneNumber.Text + "', PersonCharge = '" + lblPersonInCharge.Text + "' Where cName = '" + lblcNameP.Text + "'";
   cmdC.ExecuteNonQuery();
   MessageBox.Show("Data Updated");

}

这是错误..

error

链接到更大图片的错误:Error Picture

表单看起来像这样:

Form

在我看来,错误可能是文本框中的空格..但我不知道是不是。

谁能指出我哪里做错了?

最佳答案

不要在您的 sql 命令中使用字符串连接。您可能会遗漏一些引号,而且很难找到它的位置。使用 parameterized queries .

这种连接也对 SQL Injection 开放攻击。

SqlCommand cmdC = conn.CreateCommand();
cmdC.CommandText = "Update ComDet set cDetails = @cDetails , cDetails2 = @cDetails2, PhoneNumber = @PhoneNumber, PersonCharge = @PersonCharge  Where cName = @cName";
cmdC.Parameters.AddWithValue("@cDetails", lblcDetails.Text);
cmdC.Parameters.AddWithValue("@cDetails2", lblcDetails2.Text);
cmdC.Parameters.AddWithValue("@PhoneNumber", lblPhoneNumber.Text);
cmdC.Parameters.AddWithValue("@PersonCharge  ", lblPersonInCharge.Text);
cmdC.Parameters.AddWithValue("@cName", lblcDetails.Text);
cmdC.ExecuteNonQuery();

关于c# - 单击按钮更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20854551/

相关文章:

C#和月历,选择多个日期

c# - 在没有内存泄漏的情况下清除 ListView 项

C# 如何始终向下舍入到最接近的 50

c# - 在 Sound forge 中编写脚本

sql - 如何使用 ODBC 函数将日期时间转换为日期?

mysql - 使用存储过程向MYSQL数据库添加自动日期字段

c# - 如何从 ASP.NET MVC 3 设置 HTTP 状态代码?

c# - 每次新窗口作为命令参数

sql - 获取错误 "function week(timestamp without time zone) does not exist"

c# - 如何创建非矩形窗体?