C# 指定的强制转换在ASP.NET中无效?
我得到了以下代码:C# 指定的强制转换在ASP.NET中无效?,c#,asp.net,asp.net-mvc,visual-studio,C#,Asp.net,Asp.net Mvc,Visual Studio,我得到了以下代码: var model = new List<LogModels>(); while (reader.Read()) { var logContent = new LogModels( (int)reader["id"], (string)reader["response"], (string)reader["language"], (string)reader["country"],
var model = new List<LogModels>();
while (reader.Read())
{
var logContent = new LogModels(
(int)reader["id"],
(string)reader["response"],
(string)reader["language"],
(string)reader["country"],
(string)reader["location"],
(string)reader["os"],
(string)reader["browser"],
(string)reader["type"],
(DateTime)reader["date"]
);
model.Add(logContent);
}
图片:
我的模型(LogModels)如下所示:
public int id { get; set; }
public string response { get; set; }
public string language { get; set; }
public string country { get; set; }
public string location { get; set; }
public string os { get; set; }
public string browser { get; set; }
public string type { get; set; }
public DateTime date { get; set; }
由于我似乎找不到问题,有人知道可能是什么问题吗?var model=new List();
var model = new List<LogModels>();
while (reader.Read())
{
var logContent = new LogModels(
Convert.ToInt32(reader["id"].Tostring()),
(string)reader["response"],
(string)reader["language"],
(string)reader["country"],
(string)reader["location"],
(string)reader["os"],
(string)reader["browser"],
(string)reader["type"],
Convert.ToDateTime(reader["date"].Tostring())
);
model.Add(logContent);
}
while(reader.Read())
{
var logContent=新的日志模型(
Convert.ToInt32(读卡器[“id”].Tostring()),
(字符串)读取器[“响应”],
(字符串)读卡器[“语言”],
(字符串)读取器[“国家”],
(字符串)读卡器[“位置”],
(字符串)读卡器[“os”],
(字符串)读卡器[“浏览器”],
(字符串)读取器[“类型”],
Convert.ToDateTime(读卡器[“日期”].Tostring())
);
模型。添加(日志内容);
}
由于整数或日期时间值而导致的强制转换问题。
(int)读卡器[“Id”]
而不是转换.ToInt32(读卡器[“Id”].Tostring())
(DateTime)reader[“date”]
而不是Convert.ToDateTime(reader[“date”].Tostring())
完整异常消息比1000个图像更有用,但我猜其中一个字段不是您期望的类型(消息将告诉您是哪一个…),当然,我是在谈论reader对象(我假设是DB DataReader),不是你的视图模型类日志模型。你应该缩小失败的范围。我打赌是id
还是date
。您检查过当前记录的date
是否为空吗?也许可以尝试将DateTime
更改为可为空的类型(例如DateTime?
),如何确切地检查是哪种类型导致了问题?我是Visual Studio的新手。这是数据库表:似乎没有任何内容是空的?
var model = new List<LogModels>();
while (reader.Read())
{
var logContent = new LogModels(
Convert.ToInt32(reader["id"].Tostring()),
(string)reader["response"],
(string)reader["language"],
(string)reader["country"],
(string)reader["location"],
(string)reader["os"],
(string)reader["browser"],
(string)reader["type"],
Convert.ToDateTime(reader["date"].Tostring())
);
model.Add(logContent);
}