无法将参数值从字符串转换为datetime

时间:2012-05-27 07:28:07

标签: c# formatting

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;

在最后一行中,我的值为GLHdr.TRXDATE: "15-02-2017"

我收到格式异常。让我知道我在哪里做错了。

1 个答案:

答案 0 :(得分:3)

GLHdr.TRXDATE字符串,而不是DateTime

在传递之前,您需要将其解析为DateTime

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

请注意,DateTime.Parse 可能失败,因此ParseExactTryParseExact也会采用格式字符串,可能更适合您的特定情况。