0
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”附近的语法不正确。

4

6 回答 6

6

你写INT0的不是INTO.

此外,使用参数化查询

于 2013-01-16T09:10:07.023 回答
2

您应该尝试更改INT0INTO.

于 2013-01-16T09:10:08.907 回答
2
INSERT INT0 [Destination_CMS].[dbo]

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

于 2013-01-16T09:10:15.427 回答
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;
...
于 2013-01-16T09:10:31.497 回答
0

如果不使用参数化查询,您将面临 sql 注入的风险。

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

于 2013-01-16T09:27:06.323 回答
0

你可以把它写成一个存储过程,它的优点是更容易发现和修复这样的错别字。

于 2013-01-16T09:30:38.940 回答