繁体   English   中英

插入SQL时出现错误

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM