插入SQL时出错

时间:2013-01-16 09:09:00

标签: c# 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'附近的语法不正确。

6 个答案:

答案 0 :(得分:6)

您已撰写INT0而不是INTO

另外,请使用parameterized queries

答案 1 :(得分:3)

INSERT INT0 [Destination_CMS].[dbo]

我认为它是INSERT INTO而不是INT0(零)

答案 2 :(得分:2)

您应该尝试将INT0更改为INTO

答案 3 :(得分:1)

将查询打印到屏幕,并验证语法错误的位置。

接下来;使用参数化查询,如下所示:

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;
...

答案 4 :(得分:0)

如果不使用参数化查询,则冒着sql注入的风险..

你的问题看起来已经解决了,所以我的下一个问题是,为什么不使用像NHibernate / EF等的ORM ..,取决于你的要求,我的书中的ADO.NET管道是性能绝对的问题。

答案 5 :(得分:0)

您可以将其写为存储过程,这样做的好处就是可以更容易地发现和修复这样的拼写错误。