Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Проблема с SQL и типом Datetime

2.0K
27 января 2009 года
nevile
138 / / 05.01.2007
В общем хочу занести в БД такую строку:
 
Код:
String insertCmd = "insert into stat values ('" + name + "'," + DateTime.Now + ",'" + User.Identity.Name + "',"+rez+")";
br />
Дату получаю с помощью DateTime.Now. Если ввожу руками то он пропускает такую запись нормально.
В чем может быть проблема?
5
28 января 2009 года
hardcase
4.5K / / 09.08.2005
Цитата: nevile
В чем может быть проблема?

В том что вы конструируете запрос строкой.
Пользуйтесь классом SqlCommand с параметрами.

2.0K
02 февраля 2009 года
nevile
138 / / 05.01.2007
Немного не понял как вы предлагаете сделать? Я делаю это следующим образом:
 
Код:
String insertCmd = "insert into stat values ('" + name + "'," + DateTime.Now + ",'" + User.Identity.Name + "'," + rez + ")";
    SqlConnection ConnectionIns = new SqlConnection("Data Source=(local)\\SQLExpress;Initial Catalog=training;Integrated Security=True");
    SqlCommand CommandIns = new SqlCommand(insertCmd, ConnectionIns);
    ConnectionIns.Open();
    CommandIns.ExecuteNonQuery();
    ConnectionIns.Close();
2.0K
02 февраля 2009 года
nevile
138 / / 05.01.2007
Все проблема решена, надо было поставить одиночные кавычки при записи DateTime
5
02 февраля 2009 года
hardcase
4.5K / / 09.08.2005
Цитата: nevile
Немного не понял как вы предлагаете сделать?

В первую очередь, я предлагаю ознакомиться с документацией.

В качестве примера:

Код:
string connection_string = @"Data Source=.\sqlexpress;Initial Catalog=my_data_base;Integrated Security=True;Pooling=True";
using (SqlConnection con = new SqlConnection(connection_string)) {
    con.Open();

    string cmd_text = @"
        INSERT INTO MyFriends(nick, address, birth_date)
        VALUES(@nick, @address, @birth_date)";
    using (SqlCommand cmd = new SqlCommand(cmd_text, con)) {
        cmd.Parameters.Add("@nick", System.Data.SqlDbType.VarChar).Value = "hardcase";
        cmd.Parameters.Add("@address", System.Data.SqlDbType.VarChar).Value = "City17";
        cmd.Parameters.Add("@birth_date", System.Data.SqlDbType.DateTime).Value = new DateTime(1986, 7, 11);

        cmd.ExecuteNonQuery();
    }

}
5
02 февраля 2009 года
hardcase
4.5K / / 09.08.2005
Цитата: nevile
Все проблема решена, надо было поставить одиночные кавычки при записи DateTime


Вы ошибаетесь. Формировать SQL-команду путем конкатенации строк - очень плохая практика.

2.0K
02 февраля 2009 года
nevile
138 / / 05.01.2007
Возможно, сейчас буду разбираться с вашим примером. У меня просто очень мало опыта.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог