/ / Nie można przekonwertować wartości parametru z łańcucha na datetime - c #, formatowanie

Nie można skonwertować wartości parametru z ciągu na format daty - c #, formatowanie

myCommand1.Parameters.Add("@I_vBACHNUMB", SqlDbType.Char).Value = GLHdr.BACHNUMB;
myCommand1.Parameters.Add("@I_vREFRENCE", SqlDbType.Char).Value = "ExcelImport";
myCommand1.Parameters.Add("@I_vTRXDATE", SqlDbType.DateTime).Value = GLHdr.TRXDATE;

W ostatniej linii mam wartość GLHdr.TRXDATE: "15-02-2017".

Otrzymuję wyjątek formatu. Daj mi znać, gdzie robię błąd.

Odpowiedzi:

3 dla odpowiedzi № 1

GLHdr.TRXDATE jest strunowynie a DateTime.

Musisz go przeanalizować w DateTime przed przekazaniem go:

var dt = DateTime.Parse(GLHdr.TRXDATE);
myCommand1.Parameters.Add("@I_vTRXDATE", SqlDbType.DateTime).Value = dt;

Zauważ, że DateTime.Parse mogą nie, tak ParseExact lub TryParseExact które również przyjmują ciąg formatujący mogą być bardziej odpowiednie dla określonych okoliczności.