.net中SqlDatareader的两种取值方法的区别:SqlDatareader["列的字段名"]和SqlDatareader.GetString(列id)

实例:while(dr.Read()){if(dr["D_priId"].Equals(DBNull.Value))//正解//if(dr.GetString(3).Eq... 实例:
while(dr.Read())
{
if(dr["D_priId"].Equals(DBNull.Value)) //正解
// if(dr.GetString(3).Equals(DBNull.Value)) // 提示出错
{
Response.Write("部门号: " + dr.GetString(0) + " 部门名称: " + dr.GetString(1) + " 部门描述: " + dr.GetString(2) + " 上级部门号: 最高级别,没有上级部门 <br>");
}else{
Response.Write("部门号: "+dr.GetString(0) + " 部门名称: " + dr.GetString(1) + " 部门描述: " + dr.GetString(2) + " 上级部门号: "+ dr.GetString(3) + "");
Response.Write("<br>");
}
}
展开
 我来答
winteralice
2011-03-08 · TA获得超过130个赞
知道答主
回答量:86
采纳率:0%
帮助的人:0
展开全部
SqlDatareader["列的字段名"]返回的是object型
SqlDatareader.GetString(列id)返回的是string型
使用Equals()对比必需和前面的保持相同类型,即
string.Equals(string)
objet.Equals(objet) //这个就是你第一种写法
string.Equals(objet) //这样就报错
传奇勇者
2011-03-08 · TA获得超过747个赞
知道大有可为答主
回答量:1706
采纳率:75%
帮助的人:810万
展开全部
前面一个取出的数据类型是对象,没有具体的类型,所以你要取出字符串的话,还需要进行转换;后面这个直接取出是字串。
主要区别是前面这个你可以不管数据列的类型,后面处理,后面这个必须在读取的时候就要类型匹配。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
acehb70
2011-03-08 · TA获得超过638个赞
知道小有建树答主
回答量:747
采纳率:0%
帮助的人:171万
展开全部
SqlDataReader sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
BindingSource bs=new BindingSource();
bs.DataSource=sdr;
DataGridView1.DataSource=bs;即可
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
清秀还鲜亮的小mm3
2011-03-08 · TA获得超过649个赞
知道小有建树答主
回答量:764
采纳率:0%
帮助的人:302万
展开全部
你想问个什么问题? 怎么看不明白
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式