OracleDataReader读取第一条记录

stringtime="selectmax(syslog_date)fromt_syslogwhereopr_user_id="+eID+"andopr_type_val... string time = "select max(syslog_date) from t_syslog where opr_user_id=" + eID + " and opr_type_value=8 and syslog_cont like '%登录客户端%'";
OracleCommand cmd = new OracleCommand(time, DataBase.con);

DataBase.con.Open();
OracleDataReader dr = cmd.ExecuteReader();
发现用dr.Read()只能从第二条记录开始读取,那应该如何只读取第一条记录?
查出问题了,如果去掉后面的那句syslog_cont like '%登录客户端%就能查到数据,可是这句查询语句在数据库中调试时有返回值。是like用在C#的时候写法不一样么?
展开
 我来答
micro0369
2014-08-28 · TA获得超过1.2万个赞
知道大有可为答主
回答量:9250
采纳率:85%
帮助的人:3922万
展开全部
like 在oracle中直接执行,和 在 c# 中执行 效果应该是一样的。

是不是没有满足 syslog_cont like '%登录客户端%' 条件的数据

max(syslog_date) 在有满足条件的数据的时候,取满足数据的最大值。

max(syslog_date) 在没有满足条件的数据的时候,返回 null 值; 注意,是有行返回的,bug位null。
更多追问追答
追问
这个语句直接在数据库中操作的时候返回的有数据,但是放在程序里就不行了。把那个like语句去掉,就能返回值,一加上就报错,返回的就是空值。
追答
返回空值是对的啊,我上面给你解释了,没有满足条件数据的时候,max返回的就是空值null。
你在取值的时候判断一下是否空值就行了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式