0

我收到一个异常错误,“输入字符串的格式不正确。” “确保您的方法参数格式正确。将字符串转换为 DateTime 时,在将每个变量放入 DateTime 对象之前解析字符串以获取日期”。

它指向这段代码的最后一行:

cnaIntakeVSOutputDetail_Intake.Add(new IntakeVsOutput(
facility,
UnitRepository.Units(facility).SingleOrDefault(u => u.Code.Equals(reader.To("UNIT_CODE", ""))),
new Patient()
{
     Account = reader.To("PATIENT_ID", ""),
     MRN = reader.To("MRN", ""),
     Name = reader.To("NAME_FULL", ""),
     Room = reader.To("ROOM_BED", ""),
 },
     reader.To("INFO", ""),
     Convert.ToDateTime(reader["TRDATE"]),
     Convert.ToInt32(reader["MENU_ID"]),
     Convert.ToInt32(reader["VALUE"]),
     null, null, null));
4

3 回答 3

3

reader["TRDATE"]不包含Convert.ToDateTime可以转换为DateTime值的字符串。

这可能是因为它是一个空字符串DBNull.Valueor null

于 2012-06-14T13:59:59.477 回答
0

尝试 DateTime.TryParse 替代:

string dateString;
 DateTime dateValue;
 DateTime.TryParse(dateString, out dateValue);
于 2012-06-14T14:02:48.467 回答
0

首先,您需要确保您的 TRDATE 列包含值,否则它将触发错误输入格式不正确。为此,您可以使用

string.IsNullorEmpty(reader["TRDATE"].ToString())

方法,然后您需要解析值,否则设置默认值或将其保留为 null 以返回类型。

于 2012-06-14T15:13:02.620 回答