A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 宋超 中级黑马   /  2012-3-25 15:26  /  2791 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

SQL中reader.read() 是什么意思?怎么用呀?知道的说下  谢谢

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

6 个回复

倒序浏览
    就是读取数据库的内容啊。通过调用reader.GetStirng(int index)方法获取相应字段的数据,而获得对应索引的函数GetOrdinal('字段名');
但是要注意,一旦与数据库的连接关闭就无法继续读取数据了!

评分

参与人数 1技术分 +2 收起 理由
郑文 + 2

查看全部评分

回复 使用道具 举报
这问法有点奇怪,reader.read(),是ado.net(一个类库是与数据源进行交互的)中读取数据库内容的一个方法。
用法:我们先声明一个sqldatareader对象,然后判断我们要取的内容是否存在,
sqldatareader reader = cmd.executereader();  //假设前面已经声明了一个sqlcommand对象cmd,
if(reader.read())
{

}
这时候reader.read()就是判断数据库中是否存在这个记录,不存在记录就不进入if循环


好像写的很乱,回去再看看视频吧

评分

参与人数 1技术分 +2 收起 理由
郑文 + 2

查看全部评分

回复 使用道具 举报
就是在服务器端去读取数据,不需要占用内存,前提是与数据库连接必须是打开的状态!
sqlconnection conn=new sqlconnection("Strcon");
conn.open();
sqlcommand cmd=conn.createCommand();
cmd.commandText="select *from student";
sqldatareader reader = cmd.executereader();  
while(reader.Read())
{
  console.writeline(reader[0].........)//一行一行读取数据
}

评分

参与人数 1技术分 +2 收起 理由
郑文 + 2

查看全部评分

回复 使用道具 举报
DataReader对象

ADO.NET的DataReader对象可以从数据源中检索只读,只进的数据流,每次从数据源中只提取一记录。使用DataReader可以提高应用程序的运行性能,减少系统开销。DataReader属于.NET数据提供程序,每一种.NET数据提供程序都有与之对应的DataReader类

SQL数据提供程序      SqlDataReader           System.Data.SqlClient 命名空间

OLE DB数据提供程序   OleDbDataReader         System.Data.OleDb命名空间

ODBC数据提供程序     OdbcDataReader          System.Data.Odbc 命名空间

Oracle数据提供程序   OracleDataReader        System.Data.OracleClient 命名空间

DataReader对象的主要属性和方法

HasRows属性表示查询是否返回结果。如果有查询结果返回true,否则返回false。

FieldCount属性当前行中的列数,也就是说FieldCount返回的是字段数。

Read()前进到下一行记录。如果读到记录返回ture,否则返回false。

Close()关闭DataReader对象。

创建和使用DataReader的步骤如下:

(1)创建Command对象。

(2)调用Command对象的ExecuteReader()方法返回一个DataReader对象。

SqlDataReader reader = cmd.ExecuteReader();

(3)调用DataReader的Read()方法逐行读取查询结果集的记录。

reader.Read();

(4)读取当前行的某列的数据。

可以像使用数组一样,用方括号来读取某列的值,(type)reader["列名"]

(string)reader["userId"];

(5)关闭DataReader对象,调用它的Close().

就像平时打电话一样,如果我们正在通话,其他电话再打进来就会听到占线的提示。只有当通话结束后,其他电话才能打进来。使用DataReader读取数据时会占用数据库连接,这时必须调用Close()方法关闭DataReader,才能够用数据库进行其他数据库的操作。

reader.Close();


评分

参与人数 1技术分 +3 收起 理由
郑文 + 3

查看全部评分

回复 使用道具 举报
reader.read()楼上的就说得很清楚了。我认为为了使得程序更加的严谨,在执行这个方法之前先使用SqlDataReader 对象的 HasRows属性进行判断一下。再进行read()

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
read()的目的首先在于判断是否有下一行的存在,如果不存在则返回false,存在则返回true,是一种对数据库数据操作的判断。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马