вставить дату и время ошибки - PullRequest
1 голос
/ 19 ноября 2011

У меня проблема при вставке даты в мою базу данных Вставить запрос:

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

Я использую VS2010 с БД sql express 2008

Ответы [ 2 ]

3 голосов
/ 19 ноября 2011

Почему это происходит : похоже, вы забыли разделить даты одиночными кавычками.

Что вы должны сделать : использовать параметризованные запросы вместо этого, и вам не нужно беспокоиться о разделении или SQL-инъекции (у ответа Отиэля хороший пример)

2 голосов
/ 19 ноября 2011

Используйте параметры вместо конкатенации для построения вашего запроса:

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())
    //...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...