问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C# 数据库中想判断是否读取到数据怎么办?

发布网友 发布时间:2024-10-04 08:20

我来回答

5个回答

热心网友 时间:2024-10-04 09:00

在执行数据库查询后,读取结果的时候没有判断结果集指针是否越界。
比如只查出一条数据,结果你就读两次结果,读的时候指针是会向下走,读一条,就指到下一条。
结果集第一条数据的前边一条是BOF,B就是Begin的首字母,最后一条的后边是EOF。
结果集查回来,指针通常指向BOF,如果你写arr["字段名"]就会出错,应该先读一次,并且读的时候要判断是否读取成功,如果结果集为空,读的时候就会从BOF直接指向EOF,这样读取会失败。

热心网友 时间:2024-10-04 09:01

一般是用Read方法判断
比如:
while(dataReader .Read()){
// 处理当前记录
}
上面这样不可能漏读记录的

热心网友 时间:2024-10-04 09:07

1 通过System.DBNull判断
DataTable dt; //假设字段为name, dt已经保存了数据
dt.rows[0]["name"] == System.DBNull.Value; //判断第一行数据的name字段是否为空

2 通过IsNull判断
DataTable dt; //假设字段为name, dt已经保存了数据
dt.rows[0].IsNull("name"); //判断第一行数据的name字段是否为空

3 通过ToString() 判断
DataTable dt; //假设字段为name, dt已经保存了数据
dt.rows[0]["name"].ToString() == ""; //判断第一行数据的name字段是否为空

热心网友 时间:2024-10-04 09:03

SqlDataReader reader = DBHelper.GetReader(sql, new SqlParameter("@Id", id));
if (reader.Read())
{
UserRole userRole = new UserRole();

userRole.Id = (int)reader["Id"];
userRole.Name = (string)reader["Name"];

reader.Close();

return userRole;
}
调用的时候去判断 if(userRole == null){ //..}

热心网友 时间:2024-10-04 09:04

少读一个数据的原因是,程序中if语句多判断了一次。
reader.Read()方法是让reader读取下一条数据,有数据则返回true,否则返回false。
程序中if让reader读取第一条,while中又让reader下移一条,导致第一条数据就丢失了。
因此只要while (reader.Read())就可以了,外层不用if再判断一次。

如果需要判断reader是否有数据,好像有一个HasRows属性,或者是其他的名字。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
怎样移动手机应用的位置 不戴安全套但没有射精会怀孕吗 青岛哪所学校空乘专业就业率高 属牛的是什么星座1985年 m.xzw.com m.xingzuo360.cn 敏卡·凯利基本信息 想问一下eve用什么船刷古斯塔斯怪比较好?如果能有配置图就更好了... EVE加达里恐惧古斯塔斯小型控制塔一个月要多少燃料块 eve古斯塔斯据点需要打建筑么? 对煮饭手艺好的 应该用什么词语修饰 去哪里搜上海中小学教师招聘信息呢,怎么找都找不到呀,大家来帮帮忙吧... c#判断数据表里是否有某个字段 事情单位残疾人退休可以拿全额退休金吗 无何有之乡什么意思?出处是哪里? 白居易《读庄子》古诗原文意思赏析 何不树之于无何有之乡, 超杀行尸走肉神秘商人位置介绍_超杀行尸走肉神秘商人位置是什么_百度知 ... 行尸走肉第二季第一章:克莱蒙谭的初次遇险之旅 观澜有什么好玩的地方推荐 ...想换一块大点的,需要带主机去配还是直接随便买一块装上就可以... 狗狗止痛药有哪些牌子? 节流阀和调 ...女主很厉害的,淡然智慧什么的,温婉也可以,男主随便,邪魅的那种最... ...哥哥是太子姓君,男主是太子的伴读姓秦,小说叫什么? 我的货发的韵达快递,物流信息四天没更新了,怎么回事,我该怎么办_百度知... 我在网上买个东西,是由韵达快递的,都一个多星期了还没收到,哪位大哥... 写一篇英文我的大学生活,要求:1本人是大一新生 2要求写出喜欢音乐的三个... ...次剪去3.7米,第二次剪去4.2米。这根绳子比原来短了多少米 ...剪去十五分之二后又接上十五分之二现在绳子比原来长了问原来这根绳 ... 在爱情面前是否放弃亲情?求大神帮助 ...长300米第一次用去128米第二次用去72米,现在这根电线比原来短了多少... C#查询数据库里没有的数据时的处理 电脑任务栏为什么不显示进程呢? 朝阳市技师学院教学设施 朝阳市技师学院学汽修怎么样 朝阳市技工类学校有哪些 神明摆放方向禁忌 神明如何摆放 遇到烂桃花是什么意思? 我总是在天气热的时候就长了很多的,这是怎么回事? 天气热额头长痘痘 开业择吉看日子2024年11月开业黄道吉日? 宝宝皮肤过敏时,应避免哪些日常用品? ...女子误用工业清洁剂洗衣被烧伤,这给予我们哪些警示? 什么日长用品对皮肤 刺激最大 逆天邪神作者怎么不写了 2022年10月安香火黄道吉日查询一览表虎年10月安香火上等好日子_百度知... 2022年11月安香火黄道吉日查询一览表2022年11月安香火上等好日子有... 江阴免费游玩地方 我家在农村,我女儿一到天气暖和身上就开始长痘痘,好了又长,反反复复... 儿子穿女装化浓妆,为何作为妈妈的伊能静却丝毫不生气? 庾澄庆儿子有女装癖好,奶奶张正芬真的是因为观念保守不高兴吗?