vs2012中使用DataReader读取sql server数据时出现异常
vs2012中使用DataReader读取sql server数据时出现异常,无法读取。
因为要使用sql表中的数据看是否匹配已有数据,要把数据库的char类型转换为string类型,同时使用RTRIM将char的末尾空格去掉。C#写入sql的语句是string sql = "Select RTRIM(房间号),账单编码 from 客房入住登记表";当执行到string Fnum = textBox1.Text.Trim();
while (dataReader.Read()){
if(Fnum==(string)dataReader["房间号"])
账单编码.Text = (string)dataReader["房间号"];}
时出现异常“System.IndexOutOfRangeException”类型的异常 object {System.IndexOutOfRangeException}。
如果在sql语句中不使用RTRIM语句则不会出现异常,但因为char转换成string时末尾的几个空格导致if条件无法满足。这个问题该如何解决呢?
------解决方案--------------------
string sql = "Select RTRIM(房间号) 房间号,账单编码 from 客房入住登记表";
------解决方案--------------------必须为
RTRIM(房间号)取名称
Select
RTRIM(房间号) 房间号,账单编码 from 客房入住登记表
否则DataReader结构中没有房间号这一列,会抛出超出索引界异常