首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

查询数据SqlDataReader,该如何解决

2012-05-03 
查询数据SqlDataReaderC# code private const string SQL_SELECT_USER SELECT ID,OId,Access,User_name

查询数据SqlDataReader

C# code
 private const string SQL_SELECT_USER = "SELECT ID,OId,Access,User_name,Img,CARDs,NAMEs From  info  WHERE ID = @Id";     private const string PARM_Id = "@Id";     public ModelInfo info(int id) {             ModelInfo info= new ModelInfo();             SqlParameter parm = new SqlParameter(PARM_Id, SqlDbType.Int);            parm.Value = id;             using (SqlDataReader rdr = SqlHelper.ExecuteReader(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text, SQL_SELECT_USER, parm))             {                    account = new ModelInfo (rdr.GetInt32(0), rdr.GetString(1), rdr.GetString(2), rdr.GetString(3), rdr.GetString(4), rdr.GetString(5),rdr.GetString(6));                           }            return id;数据字段 ID         int           OID        varchar(100) 可为空         access     varchar(100) 可为空         User_name  varchar(100) 可为空         Img        varchar(100) 可为空         cards      varchar(100) 可为空         name       varchar(100) 可为空string id="123";ModelInfo    info= SQLServer.info(Int32.Parse(Id));

错误提示:
System.Data.SqlTypes.SqlNullValueException: Data is Null. This method or property cannot be called on Null values.

求原因 问题已解决 但不知道SqlDataReader为什么不行

[解决办法]
是不是你查询的记录里面没有数据,但是你却读取了,然后就报错了?
最好有If(sdr.read())来判断一下
[解决办法]
探讨

引用:
C# code
if (rdr.Read())

此方法也用了 但还是报一样的错误

[解决办法]
探讨

引用:
引用:

引用:
C# code
if (rdr.Read())

此方法也用了 但还是报一样的错误

我相信ExecuteReader这个方法里你是写了rdr.Read()
你可能读取了NULL值

++ 之前我没想到 一直找不到错 后来没办法 我直接写过了个方法

直接用dataset来读取了

[解决办法]

刚验证了哈
把dr.GetString(1);
换成dr[1].ToString();

C# code
string s1 = dr.GetString(1);string s2 = dr[1].ToString(); 

热点排行