Member 13064453 Ответов: 1

Как вставить datetime в SQL server с помощью C#?


Привет.
У меня есть проблема с вставкой datetime в sql server

У меня есть datetimepicker и я попытался взять datetime вот так "18/03/2017 01: 00: 00 вечера."
я использую эту сентенцию :
Validacion.fechachange(DTP_Aniversario.Value),

я использую класс, чтобы изменить формат значения datetimepicker, это класс:

public class Validacion 
{
       public static string fechachange(DateTime fecha)
        {
            return fecha.ToString("yyyy-MM-dd HH':'mm':'ss");
        }
}

но оно возвращается
"2017/03/18  00:00:00"

а мне нужно
"2017/03/18  01:00:00 p.m."


но при отправке команды на sql server у меня возникает такая ошибка "Ошибка преобразования типа данных varchar в datetime." только тогда, когда это произошло.

что я могу сделать, чтобы исправить это?????

Что я уже пробовал:

это код, который я использовал для вставки в sql server

private void Btn_Aceptar_Click_1(object sender, EventArgs e)
 {
string cmd = string.Format("Execute SpInsertar_Cliente '{0}','{1}','{2}','{3}'", 
this.Txt_Id_Cliente,
this.Txt_RasonSocial.Text.Trim(),
// parameter 3  error
// option 1 not worck
// CONVERT(DATETIME,'" & Format(FPEDIDO, "yyyy-mm-dd hh:mm:ss") & "',102) , "
// option 2 not worck                                                     
// Convert.ToDateTime(DTP_Aniversario.Value, "yyyy-mm-dd hh:mm:ss"),
// option 3 not worck     
// DTP_Aniversario.Value.ToString("m",CultureInfo.CreateSpecificCulture("en-us")),
// option 4 it´s worck but has the hour -> 00:00:00 
Validacion.fechachange(DTP_Aniversario.Value),
////////////////////////////////////////////////////////////////////////////////

this.CkB_Bloqueado.Checked,
);
Utilidades.EjecSql(cmd, Frm_Login.Conexion);
Mensajeok("Se ingreso correctamente el registro");
}

1 Ответов

Рейтинг:
1

OriginalGriff

Не преобразуйте его в строку: передайте его в качестве параметра непосредственно с помощью значения DateTime - система гарантирует, что он будет обработан SQL как значение DATETIME.

Никогда не передавайте строки, никогда не объединяйте строки: всегда используйте параметризованные запросы и передавайте "реальные" типы данных.