Pembaca data ialah objek yang digunakan untuk membaca data daripada sumber data. Ini hanya boleh melakukan operasi baca dan tidak mengemas kini operasi pada sumber data. Data diambil semula sebagai aliran data daripada sumber data. Walaupun pembaca data dihadkan dari segi operasi membaca sahaja, ia sangat berkesan dan dioptimumkan kerana ia dibaca sahaja dan ke hadapan sahaja. Terdapat dua jenis pembekal dalam Rangka Kerja .Net, mereka ialah SQLDataReader dan OleDbDataReader. Pembaca data meningkatkan prestasi aplikasi dengan mengurangkan overhed sistem kerana ia menyimpan satu-satunya baris dalam ingatan pada titik masa tertentu. Artikel ini akan membincangkan secara terperinci pembaca data dalam c# bersama-sama dengan contoh yang sesuai.
Sintaks:
Pembaca data sql tersedia dalam ruang nama System.Data.SqlClient dan pemasangan yang sepadan ialah System.Data.SqlClient.dll. Pembaca data SQL dimulakan seperti berikut.
SqlDataReadersqlReader = sqlCmd.ExecuteReader();
Pembaca laksana digunakan untuk menghantar pernyataan atau prosedur SQL kepada objek sqlconnection dan hasil yang sepadan disimpan dalam objek sqlreader SqlDataReader. Sebelum membaca daripada mana-mana pembaca data, ia hendaklah sentiasa terbuka dan harus menunjuk kepada rekod pertama. Kaedah read() pembaca data digunakan untuk membaca dan ia bergerak ke hadapan ke baris seterusnya.
Pembaca data oledb juga berkelakuan dengan cara yang sama. Ia tersedia dalam ruang nama System.Data.OleDb dan pemasangan yang sepadan ialah System.Data.OleDb.dll. Objek oledbDataReader digunakan untuk menyambung ke sumber data OLEDB dan mengambil data daripadanya. Seperti SQLDataReader, pembaca oledbdata juga harus dibuka sebelum melakukan operasi baca. Pembaca data oledb dimulakan seperti berikut.
OleDbDataReaderoledbReader = oledbCmd.ExecuteReader();
Di mana executereader digunakan untuk menjalankan pernyataan atau prosedur SQL.
Objek pembaca data mempunyai kaedah baca yang boleh digunakan untuk mengakses baris daripada set hasil. Setiap nilai lajur boleh diakses sama ada menggunakan nama mereka atau menggunakan susunan lajur mereka di mana nilai lajur itu muncul pada set hasil. Untuk meningkatkan kecekapan, satu set kaedah penukaran jenis yang telah ditetapkan untuk mengakses nilai seperti itu. Pembaca data dinasihatkan untuk digunakan apabila menggunakan set data yang besar kerana data tidak disimpan dalam memori cache. Ia sentiasa dinasihatkan untuk menutup objek pembaca data sebaik sahaja ia digunakan. Jika arahan mempunyai beberapa nilai pulangan atau parameter output, ia hanya tersedia sebaik sahaja pembaca data ditutup. Satu lagi perkara penting yang perlu diingat semasa menggunakan pembaca data ialah apabila sambungan digunakan oleh pembaca data pembaca data lain atau sebarang operasi lain tidak boleh dilakukan pada sambungan itu. Selain itu, satu perkara penting yang perlu diingat ialah hanya boleh mengakses set data ke hadapan. Kita boleh beralih kepada rekod seterusnya sahaja dan bukan kepada rekod sebelumnya.
Jika pembaca data mengembalikan beberapa set hasil, kaedah NextResult pembaca data boleh digunakan untuk mengaksesnya. Semasa pelaksanaan, perlu diambil perhatian dan diambil perhatian bahawa semua set keputusan sedang diulang dan setiap lajur di dalam set hasil boleh diakses.
Di bawah ialah contoh DataReader C#:
Lazimnya, data yang dibaca daripada set hasil yang dikembalikan oleh pembaca data adalah untuk mengulang setiap baris menggunakan gelung sementara. Nilai pulangan kaedah baca adalah daripada jenis bool, jika baris seterusnya ada maka benar dikembalikan dan untuk rekod terakhir, palsu dikembalikan. Gelung while akan dilaksanakan sehingga keadaan menjadi palsu.
Sintaks:
while(rdr.Read()) { // operation to be performed // Access columns // Data manipulation }
Seperti menutup sambungan SQL, ia sentiasa menjadi amalan terbaik untuk menutup pembaca Data. Sementara itu sebahagian boleh dimasukkan ke dalam blok percubaan dan sambungan pembaca data boleh ditutup dalam blok akhirnya.
Sintaks:
try { // operation to be performed // Access columns // Data manipulation } Catch { //Handle exception here } finally { //close the data reader connection if (reader != null) { reader.Close(); } // close thesql connection }
Kod:
using System; using System.Windows.Forms; using System.Data.SqlClient; namespace test { public partial class test1 : Form { public test1() { InitializeComponent(); } Public static void main() { string constr = null; SqlConnectionscon ; SqlCommandscmd ; string sstat = null; constr = "Data Source=testserver;Initial Catalog=testdb;User ID=test;Password=test"; sstat = "Select * from test"; scon = new SqlConnection(constr); try { scon.Open(); scmd = new SqlCommand(sstat, scon); SqlDataReadersstatReader = scmd.ExecuteReader(); while (sstatReader.Read()) { Console.WriteLine("Name:" sstatReader.GetValue(0) + "age:" sstatReader.GetValue(1) ); } sstatReader.Close(); scmd.Dispose(); scon.Close(); } catch (Exception ex) { } } } }
Output:
Kod:
using System; using System.Windows.Forms; using System.Data.OleDb; namespace test { public partial class test : Form { public test() { InitializeComponent(); } Public static void main() { string constr = null; OleDbConnectionocon ; OleDbCommandocmd ; string sql = null; constr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb"; sql = "select * from emp"; ocon = new OleDbConnection(constr); try { ocon.Open(); ocmd = new OleDbCommand(sql, ocon); OleDbDataReaderordr = ocmd.ExecuteReader(); while (ordr.Read ()) { Console.WriteLine("EmpName:" ordr.GetValue(0) + "Empage:" ordr.GetValue(1) + "Esalary" ordr.GetValue(2) ); } ordr.Close(); ocmd.Dispose(); ocon.Close(); } catch (Exception ex) { Console.WriteLine("Connection Failed"); } } } }
Output:
Oleh itu, artikel itu membincangkan secara terperinci tentang pembaca data dalam c#. Ia juga menunjukkan cara pembaca data boleh dibaca hanya dengan cara ke hadapan daripada aliran data. Artikel tersebut juga menerangkan secara terperinci tentang dua jenis pembaca data, I .esql data reader dan oledb data reader. Ia menunjukkan kerja kedua-dua pembaca data bersama-sama dengan contoh yang sesuai. Artikel itu juga membincangkan tentang cara bekerja dengan berbilang set hasil menggunakan kaedah NextResult dan cara setiap baris data boleh diulang menggunakan gelung untuk. Untuk mengetahui lebih lanjut dengan terperinci adalah dinasihatkan untuk menulis contoh program dan mengamalkannya.
Ini adalah panduan untuk DataReader C#. Di sini kita membincangkan Pengenalan kepada DataReader dalam C# dan contoh-contohnya bersama-sama dengan Pelaksanaan Kod dan Output. Anda juga boleh membaca artikel cadangan kami yang lain untuk mengetahui lebih lanjut –
Atas ialah kandungan terperinci DataReader C#. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!