使用ADO.NET怎样从SQL Server 中检索数据
2024-07-10 13:02:58
供稿:网友
注册会员,创建你的web开发资料库,此示例阐释如何使用 sqldatareader 类从 sql server 读取数据。此类提供了一种从数据源读取只进数据记录流的方法。如果要使用具有 ole db 接口或 sql server 7.0 以前的 sql server 版本的数据库,请参阅从 ole db 检索数据。 sqldatareader 是通过调用 sqlcommand 的 executereader 方法来创建的,而不是通过直接使用构造函数创建的。当 sqldatareader 在使用中时,相关联的 sqlconnection 将忙于为 sqldatareader 提供服务。在这种情况下,除了关闭 sqlconnection 之外,无法在 sqlconnection 上执行任何其他操作。在调用 sqldatareader 的 close 方法之前,这种情况一直存在。 sqldatareader 提供一种从 sql server 数据源读取只进数据记录流的方法。要进行交互性更强的操作,如滚动、筛选、定位、远程处理等,请使用数据集。 此示例创建到 northwind 数据库的 sqlconnection。然后使用 sqlcommand executereader 方法执行从雇员 (employee) 表中选择项的 sqlcommand。此命令的结果将传递给 sqldatareader。 c# : sqldatareader mydatareader = null; sqlconnection mysqlconnection = new sqlconnection("server=(local)/vsdotnet;trusted_connection=yes;database=northwind"); sqlcommand mysqlcommand = new sqlcommand("select employeeid, lastname, firstname, title, reportsto from employees", mysqlconnection); ... mysqlconnection.open(); mydatareader = mysqlcommand.executereader(commandbehavior.closeconnection); 此示例使用 sqldatareader read 方法读取全部数据,然后将数据元素写出到控制台。 c# : while (mydatareader.read()) { console.write(mydatareader.getint32(0) + "/t"); console.write(mydatareader.getstring(2) + " " + mydatareader.getstring(1) + "/t"); console.write(mydatareader.getstring(3) + "/t"); if (mydatareader.isdbnull(4)) console.write("n/a/n"); else console.write(mydatareader.getint32(4) + "/n"); } 最后,该示例先关闭 sqldatareader,然后再关闭 sqlconnection。 c# : // always call close when done reading. mydatareader.close(); // close the connection when done with it. mysqlconnection.close(); 摘要 1、sqldatareader 用于从 sql server 读取只进数据记录流。 2、请记住先关闭 sqldatareader,然后再关闭 sqlconnection。 3、每次只能在 sqlconnection 上打开一个 sqldatareader。如果 sqldatareader 在使用中,相关联的 sqlconnection 将忙于为 sqldatareader 提供服务。在这种情况下,除了关闭 sqlconnection 之外,无法在 sqlconnection 上执行任何其他操作。