[英]I am getting error while inserting to SQL
datetime=Datetime.Now;
string strquery = @"INSERT INT0 [Destination_CMS].[dbo].[Destination_CMS_User]
values('" + userid + "','" + email + "','"
+ userType + "','" + userStatus + "','" + processed + "','"
+ datetime.ToLongDateString() + "')";
cmd = new SqlCommand(strquery, con);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
我收到错误消息:“ Destination_CMS”附近的语法不正确。
您编写的是INT0
而不是INTO
。
另外,请使用参数化查询 。
INSERT INT0 [Destination_CMS].[dbo]
我认为它的INSERT INTO而不是INT0(零)
您应该尝试将INT0
更改为INTO
。
将查询打印到屏幕上,并验证语法错误在哪里。
在那旁边; 使用参数化查询,如下所示:
string query = "INSERT INTO [tablename] ( column, column ) VALUES (@p_param1, @p_param2)";
var command = new SqlCommand (query);
command.Parameters.Add ("@p_param1", SqlDbType.DateTime).Value = DateTime.Now;
...
如果不使用参数化查询,则冒着SQL注入的风险。
您的问题看起来已经解决,所以我的下一个问题将是,为什么不使用NHibernate / EF等ORM,具体取决于您对语言的要求,但是我书中的ADO.NET管道绝对是性能的问题。
您可以将其编写为存储过程,这具有使这样的错字更容易发现和修复的优点。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.