每次尝试运行此特定网页时,我都会收到上述错误。我正在添加一些代码和数据库结构的图像(作为链接给出)。在错误的附加信息行中,它表示当数据表为空时已尝试读取数据。当我回去检查表数据时,存在数据。请帮忙!
SqlConnection con = new SqlConnection(@"ConnectionString");
protected void Page_Load(object sender, EventArgs e)
{
string checkdu = "select Top 1 Hour, Minute, Hour1, Minute1 from Clockin";
SqlCommand cmddu = new SqlCommand(checkdu, con);
con.Open();
SqlDataReader dru = cmddu.ExecuteReader();
int td1 = (Convert.ToInt16(dru["Hour"]) * 60) + (Convert.ToInt16(dru["Minute"])); //error shown here[enter image description here][1]
int td2 = (Convert.ToInt16(dru["Hour1"]) * 60) + (Convert.ToInt16(dru["Minute1"]));
答案 0 :(得分:3)
您必须使用SqlDataReader.Read
让读者前进到下一个(第一个)记录:
using(var dru = cmddu.ExecuteReader())
{
if(dru.Read())
{
int td1 = (Convert.ToInt16(dru["Hour"]) * 60) + (Convert.ToInt16(dru["Minute"])); //error shown here[enter image description here][1]
int td2 = (Convert.ToInt16(dru["Hour1"]) * 60) + (Convert.ToInt16(dru["Minute1"]));
}
}
SqlDataReader的默认位置是在第一条记录之前。 因此,您必须调用Read以开始访问任何数据。