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'附近的语法不正确。
答案 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)
您可以将其写为存储过程,这样做的好处就是可以更容易地发现和修复这样的拼写错误。