我在从表中检索数据时几乎没有问题,这里是代码:如果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)
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();
}
}
问题是,它在第四列给出了错误,即
Program.Pm = updateReader.GetString(4);
错误是
specified cast is not valid
(实际上在第三列之后,它给出了例外)但我很确定铸造不是问题,因为当我移除
if condtion
在顶部
if (!updateReader.HasRows)
然后代码工作得很好,我想知道如果m签入“读卡器有行或没有行”,读卡器有什么问题吗?