我从表中检索数据时遇到的问题是:如果db表中的列为空,则抛出异常......
string cmdText = "select member_id,disp_id,mobile_no,tm,pm,lm,due_date from Recharge";
string UpdateStatus = "",hepUpdateStatus="";
OleDbCommand cmdFinalUpdate = new OleDbCommand(cmdText, conn);
OleDbDataReader updateReader = cmdFinalUpdate.ExecuteReader();
if (!updateReader.HasRows) // this condition is creating problem
MessageBox.Show("No Data Pending For Updation");
else
{
try
{
while (updateReader.Read())
{
Program.MemberID = Convert.ToInt64(updateReader.GetInt32(0));
Program.DispID = updateReader.GetString(1);
Program.Mobile = updateReader.GetString(2);
Program.Tm = updateReader.GetString(3);
Program.Pm = updateReader.GetString(4);
Program.Remarks = updateReader.GetString(5);
Program.DueDate = updateReader.GetString(6);
}
}
catch (Exception) { }
finally
{
updateReader.Close();
}
}
问题是,它在Forth Column上给出了错误,即Program.Pm = updateReader.GetString(4);
错误是specified cast is not valid
(实际上在第3列之后它给出异常)但我非常确定转换不是问题,当我删除顶部的if condtion
即if (!updateReader.HasRows)
然后代码完全正常时,我想知道该读者的问题是什么,如果我检查读者是否有行?
答案 0 :(得分:2)