2011-11-18 75 views
1

插入日期到我的数据库 插入查询时,我有问题:插入日期时间错误

INSERT INTO users (f_name, s_name, t_name,family_name, age, national_id, 
telephone, mobile, address, job_name, company_code, start_date, end_date) 
VALUES (N'" + fname + "',N'" + sname + "',N'" + tname + "',N'" + famiy_name + 
     "',N'" + age + "',N'" + national_id + "',N'" + telephone + 
     "',N'" + mobile + "',N'" + address + "',N'" + job_name + "',N'" + 
     company_code + "'," + start_date + "," + end_date + ")"; 

注意大写字母“N”项前能够插入阿拉伯语词汇

错误信息:

'12'附近语法不正确。

虽然从文字可视化的日期格式为

05/11/2010 12:00:00 AM

我用DB VS2010的SQL Express 2008

+0

您是否需要“N”来插入数值? –

+0

“N”插入阿拉伯文字符串 – user1054699

回答

2

使用参数的连接而不是建立自己的查询:

using (SqlCommand myCommand = new SqlCommand(
    "INSERT INTO users (f_name, s_name, ...) VALUES (@f_name, @s_name, ...)")) { 

    myCommand.Parameters.AddWithValue("@f_name", f_name); 
    myCommand.Parameters.AddWithValue("@s_name", s_name); 
    //... 

    myConnection.Open(); 
    myCommand.ExecuteNonQuery()) 
    //... 
} 
+0

+1为示例 –

+0

感谢otiel我已经更改为使用参数,而不是串联,并解决了问题 – user1054699

3

为什么发生这种情况:它看起来像你忘了用单引号分隔你的日期。

你应该做的:使用parameterized queries,而不是和你不必担心划定或SQL注入(Otiel的回答有一个很好的样本)

+0

+1打我的时间;) – Otiel

+0

谢谢我allready将使用Otiel的答案 – user1054699