' ='
附近的语法不正确
我的代码是
"update staff_Tables
set emp_id='" + txtEmployeeID.Text + "' ,
emp_sal='" + txtEmpSal.Text + "',
emp_name='" + txtEmployeeName.Text + "',
emp_Deignation='" + txtDesignation.Text + "',
Gender='" + cboGender.Text + "',
contactno='" + txtContact.Text + "',
Address='" + rtbAddress.Text + "',
Joining_Date='" + txtjoindate.Text + "'
where txtid=" + txtid.Text, sqlcon.getCon());
答案 0 :(得分:1)
首先,你不应该像这样连接sql查询。 您的查询极易受到Sql Injectio n攻击。
始终使用stored procedures或parameterized queries。
第二,你试过调试吗?根据列名称判断,Emp_Id
,Emp_Sal
和contactno
可能是数字数据,而不是字符串,因此'围绕这些价值观是错误的。
您的查询应如下所示:
"update staff_Tables
set emp_id = @emp_id,
emp_sal = @emp_sal,
emp_name = @emp_name,
emp_Deignation = @emp_Deignation,
Gender = @Gender,
contactno = @contactno,
Address = @Address,
Joining_Date = @Joining_Date
where txtid = @txtid"
并将参数添加到SqlCommand.Parameters
集合中,如下所示:
cmd.Parameters.Add("@emp_id, SqlDBType.Int).Value = txtEmployeeID.Text
答案 1 :(得分:1)
您的.Text值中可能只有一个引号,通过将它们加倍来修复,例如:
Address='" + Replace(rtbAddress.Text, "'", "''") + "' vb
Address='" + rtbAddress.Text.Replace("'", "''") + "' #c
但是,是的,你可以使用这种更新数据库的方法对sql注入开放。