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

一个好简单的ADO.net有关问题

2012-01-10 
一个好简单的ADO.net问题C# codeDealer dl new Dealer()using (SqlDataReader dr SqlHelper.ExecuteR

一个好简单的ADO.net问题

C# code
Dealer dl = new Dealer();        using (SqlDataReader dr = SqlHelper.ExecuteReader(CommandType.StoredProcedure, "searchOnDealer", new SqlParameter("@ID", dID)))        {            if (dr.HasRows)            {                dl.ID = dr.GetInt32(0);                dl.Name = dr.GetString(1);                dl.Address = dr.GetString(2);                dl.Theme = dr.GetInt32(5);            }                   }

经调试:dl.ID = dr.GetInt32(0); 我运行到这里就出错
说:在没有任何数据时进行无效的读取尝试。 
请指教!

[解决办法]
if (dr.Read())

[解决办法]
你只是判断了一下是否有数据,但是没有进行读取操作
C# code
while(reader.Read()){    dl.ID = reader.GetInt32(0);    dl.Name = reader.GetString(1);    dl.Address = reader.GetString(2);    dl.Theme = reader.GetInt32(5);}
[解决办法]
if (dr.HasRows && dr.Read()) 
{
int id=0;
 int.TryPase(dr["字段名1"].ToString();,out id);
dl.ID=id;
dl.Name = dr["字段名2"].ToString();
dl.Address = dr["字段名3"].ToString();

int theme=0;
 int.TryPase(dr["字段名5"].ToString();,out theme);
dl.Theme =theme; //如果确定数据没有问题,就用Parse()
}

热点排行