最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
SqlDataReader 学习笔记与常见应用问题
时间:2010-12-29 编辑:简简单单 来源:一聚教程网
sqldatareader转换成string有空格问题 相信很多朋友在做数据库教程字段和textbox.text属性里值比较时,把读取出来的sqldatareader对象转换成string,发现就算是同一个值也不会产生相等结果,用断点方法查看结果,原来sqldatareader转换成string后,会用空格补齐字段类型大小,最后通过string的trim()函数,去掉空格才可以进行对比。这是由于数据库使用nvhar类型,当写入的值比规定的值小时将用空格填满,所以大家要注意去除空格问题。
提供一种从 sql server 数据库读取行的只进流的方式。无法继承此类。
命名空间:system.data.sqlclient
程序集:system.data(在 system.data.dll 中)
声明
public class sqldatareader
inherits dbdatareader
implements idatareader, idisposable, idatarecord
'用法
dim instance as sqldatareader
j#
复制
public class sqldatareader extends dbdatareader implements idatareader, idisposable,
idatarecord
使用sqldatareader问题
第一个问题,datareader的read()方法是顺序读取,这个可以参照指针,一开始指针是指向datareader的头部,但是那里并没有数据,reader中的数据从下一个地址开始,如果要取得数据需要一次次用read()来取。
第二个问题,hasrows是返回datareader中是否包含一个或多个结果,如果有那就可以直接告诉程序这个部门已经存在。
这里要理解的是,datareader中的数据不管有几条,他都是存在的,就像是你站在一个队伍前,看到的始终是第一个人,如果他不走开,你看不到下一个人,但是队伍的人数不会因为你看不到而改变。
应用实例
public static sqldatareader executereader(string str)
{
using(sqlconnection conn=new sqlconnection())
{
try
{
conn = createconnection();
if (conn.state == connectionstate.closed) conn.open();
sqlcommand cmd = new sqlcommand(str, conn);
sqldatareader reader = cmd.executereader(commandbehavior.closeconnection);
return reader;
}
catch
{
conn.close();
}
}
}
sqldatareader可以认为一个forward only 的curosor.它不像dataset是断开式的数据链接。它一直占用 connection [也就是一直保存链接]
相关文章
- sql 语句中的问号学习笔记 11-02
- C#复制数组的两种方式及效率比较解读 10-24
- ASP.NET Identity用法解析 10-24
- ASP.NET MVC使用Identity增删改查用户介绍 10-24
- C语言中atoi函数模拟实现介绍 10-18
- .Net反向代理组件Yarp用法介绍 10-10