我在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;
}

<table style="width:100%">
                <caption>INFO</caption>
                <tr>
                    <td> Date </td>
                    <td> Time </td>
                </tr>
                    <%=getData()%>
                </table>

这是我的错误:
它正在从上述代码向此行引发异常:
DateTime Date = reader.GetDateTime(0);

最佳答案

从您的评论:
此行引发了异常
第一列不是有效的日期时间。很可能,您的表中有多个列,您通过运行以下查询来检索所有列:

SELECT * from INFO

替换为只检索您感兴趣的两列的查询:
SELECT YOUR_DATE_COLUMN, YOUR_TIME_COLUMN from INFO

然后再次尝试读取值:
var Date = reader.GetDateTime(0);
var Time = reader.GetTimeSpan(1);  // equivalent to time(7) from your database

或:
var Date = Convert.ToDateTime(reader["YOUR_DATE_COLUMN"]);
var Time = (TimeSpan)reader["YOUR_TIME_COLUMN"];

关于c# - 指定的类型转换无效?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27699781/

10-13 02:43