我有一个在ASP.net中创建的表,我想在页面加载后用数据库中的信息填充表.我收到一个指定的强制转换无效的错误.我究竟做错了什么?继承我的代码
public string getData()
{
string htmlStr = "";
SqlConnection conn = new SqlConnection(connString);
SqlCommand command = conn.CreateCommand();
command.CommandText = "SELECT * from INFO";
conn.Open();
SqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
DateTime Date = reader.GetDateTime(0);
DateTime Time = reader.GetDateTime(1);
htmlStr += "<tr><td>" + Date + "</td><td>" + Time + "</td></tr>";
}
conn.Close();
return htmlStr;
}
Run Code Online (Sandbox Code Playgroud)
<table style="width:100%">
<caption>INFO</caption>
<tr>
<td> Date </td>
<td> Time </td>
</tr>
<%=getData()%>
</table>
Run Code Online (Sandbox Code Playgroud)
这是我的错误:

它从上面的代码中抛出此行的异常:
DateTime Date = reader.GetDateTime(0);
Run Code Online (Sandbox Code Playgroud)
Gra*_*ICA 10
来自你的评论:
这条线
DateTime Date = reader.GetDateTime(0);正在抛出异常
第一列不是有效的DateTime.最有可能的是,您的表中有多列,并且您通过运行此查询来检索所有列:
SELECT * from INFO
Run Code Online (Sandbox Code Playgroud)
将其替换为仅检索您感兴趣的两列的查询:
SELECT YOUR_DATE_COLUMN, YOUR_TIME_COLUMN from INFO
Run Code Online (Sandbox Code Playgroud)
然后再次尝试读取值:
var Date = reader.GetDateTime(0);
var Time = reader.GetTimeSpan(1); // equivalent to time(7) from your database
Run Code Online (Sandbox Code Playgroud)
要么:
var Date = Convert.ToDateTime(reader["YOUR_DATE_COLUMN"]);
var Time = (TimeSpan)reader["YOUR_TIME_COLUMN"];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
80024 次 |
| 最近记录: |