2011-11-18 147 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