使用ADO.NET怎樣從SQL Server 中檢索數(shù)據(jù)
2024-07-10 13:02:58
供稿:網(wǎng)友
注冊會(huì)員,創(chuàng)建你的web開發(fā)資料庫,此示例闡釋如何使用 sqldatareader 類從 sql server 讀取數(shù)據(jù)。此類提供了一種從數(shù)據(jù)源讀取只進(jìn)數(shù)據(jù)記錄流的方法。如果要使用具有 ole db 接口或 sql server 7.0 以前的 sql server 版本的數(shù)據(jù)庫,請(qǐng)參閱從 ole db 檢索數(shù)據(jù)。 sqldatareader 是通過調(diào)用 sqlcommand 的 executereader 方法來創(chuàng)建的,而不是通過直接使用構(gòu)造函數(shù)創(chuàng)建的。當(dāng) sqldatareader 在使用中時(shí),相關(guān)聯(lián)的 sqlconnection 將忙于為 sqldatareader 提供服務(wù)。在這種情況下,除了關(guān)閉 sqlconnection 之外,無法在 sqlconnection 上執(zhí)行任何其他操作。在調(diào)用 sqldatareader 的 close 方法之前,這種情況一直存在。 sqldatareader 提供一種從 sql server 數(shù)據(jù)源讀取只進(jìn)數(shù)據(jù)記錄流的方法。要進(jìn)行交互性更強(qiáng)的操作,如滾動(dòng)、篩選、定位、遠(yuǎn)程處理等,請(qǐng)使用數(shù)據(jù)集。 此示例創(chuàng)建到 northwind 數(shù)據(jù)庫的 sqlconnection。然后使用 sqlcommand executereader 方法執(zhí)行從雇員 (employee) 表中選擇項(xiàng)的 sqlcommand。此命令的結(jié)果將傳遞給 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 方法讀取全部數(shù)據(jù),然后將數(shù)據(jù)元素寫出到控制臺(tái)。 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"); } 最后,該示例先關(guān)閉 sqldatareader,然后再關(guān)閉 sqlconnection。 c# : // always call close when done reading. mydatareader.close(); // close the connection when done with it. mysqlconnection.close(); 摘要 1、sqldatareader 用于從 sql server 讀取只進(jìn)數(shù)據(jù)記錄流。 2、請(qǐng)記住先關(guān)閉 sqldatareader,然后再關(guān)閉 sqlconnection。 3、每次只能在 sqlconnection 上打開一個(gè) sqldatareader。如果 sqldatareader 在使用中,相關(guān)聯(lián)的 sqlconnection 將忙于為 sqldatareader 提供服務(wù)。在這種情況下,除了關(guān)閉 sqlconnection 之外,無法在 sqlconnection 上執(zhí)行任何其他操作。