如何以格式传递电子邮件地址test@test1.com在对Access DB的更新查询中
本文关键字:DB Access 在对 更新 查询 com test@test1 格式 电子邮件地址 | 更新日期: 2023-09-27 18:27:56
我正在尝试将Access DB中的电子邮件列更新为"test@test1.com"。但我收到了这个错误/异常
System.Data.dll 中发生类型为"System.Data.OleDb.OleDbException"的未处理异常
附加信息:查询表达式"中存在语法错误(缺少运算符)test@test1.com"。
我的代码如下。
string em = "test@" + comId + ".com";
string cmd = "UPDATE tblWebUsers SET Email ="+ em +" WHERE CustRole = 'SuperAdmin'";
OleDbCommand cmdv3 = new OleDbCommand(cmd, con);
cmdv3.ExecuteNonQuery();
有什么帮助吗???
查询中的电子邮件地址不在引号之间,因此数据库服务器尝试将电子邮件地址解析为指令而不是字符串。
string em = "test@" + comId + ".com";
string cmd = "UPDATE tblWebUsers SET Email ='"+ em +"' WHERE CustRole = 'SuperAdmin'";
OleDbCommand cmdv3 = new OleDbCommand(cmd, con);
cmdv3.ExecuteNonQuery();
对不起,这是我的一个错误
要在访问数据库中的查询中传递字符串值,必须将其括在单引号内。另一种更好的方法和安全编码的方法是使用参数
string email = "test@test1.com";
string comp = "test1";
string cmd = "UPDATE tblCustomerUsers SET Email = ? WHERE CompanyID = ? AND CustRole = 'SuperAdmin'";
OleDbCommand cmdv3 = new OleDbCommand(cmd, con);
cmdv3.Parameters.AddWithValue("@p1", email);
cmdv3.Parameters.AddWithValue("@p2", comp);
cmdv3.ExecuteNonQuery();
谢谢你的回答。我真的很感激你的出色工作。