查询数据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())来判断一下
[解决办法]
[解决办法]
[解决办法]
刚验证了哈
把dr.GetString(1);
换成dr[1].ToString();
- C# code
string s1 = dr.GetString(1);string s2 = dr[1].ToString();