데이터 리더는 데이터 소스에서 데이터를 읽는 데 사용되는 개체입니다. 이는 데이터 소스에 대한 읽기 작업만 수행할 수 있고 업데이트 작업은 수행할 수 없습니다. 데이터는 데이터 소스에서 데이터 스트림으로 검색됩니다. 데이터 리더기는 읽기 동작만 가능하도록 제한되어 있지만 읽기 전용, 전달 전용이므로 효율성과 최적화가 매우 뛰어납니다. .Net Framework에는 SQLDataReader와 OleDbDataReader라는 두 가지 유형의 공급자가 있습니다. 데이터 리더는 특정 시점에 메모리에 유일한 행을 저장하므로 시스템 오버헤드를 줄여 애플리케이션 성능을 향상시킵니다. 이 문서에서는 적절한 예제와 함께 C#의 데이터 리더에 대해 자세히 설명합니다.
구문:
SQL 데이터 판독기는 System.Data.SqlClient 네임스페이스에서 사용할 수 있으며 해당 어셈블리는 System.Data.SqlClient.dll입니다. SQL 데이터 리더는 다음과 같이 초기화됩니다.
SqlDataReadersqlReader = sqlCmd.ExecuteReader();
실행 리더는 SQL 문이나 프로시저를 sqlconnection 개체에 전달하는 데 사용되며 해당 결과는 SqlDataReader의 sqlreader 개체에 저장됩니다. 데이터 판독기에서 읽기 전에는 항상 열려 있어야 하며 첫 번째 레코드를 가리켜야 합니다. 데이터 리더기의 read() 메소드를 이용하여 읽고 다음 행으로 넘어갑니다.
oledb 데이터 리더도 동일한 방식으로 작동합니다. 이름 공간 System.Data.OleDb에서 사용할 수 있으며 해당 어셈블리는 System.Data.OleDb.dll입니다. oledbDataReader 개체는 OLEDB 데이터 소스에 연결하고 여기에서 데이터를 가져오는 데 사용됩니다. SQLDataReader와 마찬가지로 oledbdata 리더도 읽기 작업을 수행하기 전에 열려 있어야 합니다. oledb 데이터 리더는 다음과 같이 초기화됩니다.
OleDbDataReaderoledbReader = oledbCmd.ExecuteReader();
Execurereader를 사용하여 SQL 문이나 프로시저를 수행하는 경우
데이터 판독기 개체에는 결과 집합의 행에 액세스하는 데 사용할 수 있는 읽기 메서드가 있습니다. 각 열 값은 해당 이름을 사용하거나 결과 집합에 나타나는 열 순서를 사용하여 액세스할 수 있습니다. 효율성을 높이기 위해 사전 정의된 유형 변환 방법 세트를 사용하여 값에 액세스합니다. 데이터가 캐시 메모리에 저장되지 않으므로 대용량 데이터 세트를 작업할 때 데이터 리더를 사용하는 것이 좋습니다. 데이터 판독기 개체를 사용한 후에는 항상 닫는 것이 좋습니다. 명령에 일부 반환 값이나 출력 매개변수가 있는 경우 데이터 판독기를 닫은 후에만 사용할 수 있습니다. 데이터 리더를 사용할 때 명심해야 할 또 다른 중요한 점은 데이터 리더가 연결을 사용할 때 해당 연결에서 다른 데이터 리더 또는 기타 작업을 수행할 수 없다는 것입니다. 또한 기억해야 할 중요한 점 중 하나는 데이터 세트에 대한 순방향 액세스만 가능하다는 것입니다. 이전 레코드가 아닌 다음 레코드에만 반복할 수 있습니다.
데이터 리더가 여러 결과 세트를 반환하는 경우 데이터 리더의 NextResult 메서드를 사용하여 해당 결과 세트에 액세스할 수 있습니다. 구현 중에는 모든 결과 세트가 반복되고 결과 세트 내의 각 열에 액세스할 수 있다는 점에 유의하고 주의를 기울여야 합니다.
다음은 DataReader C#의 예입니다.
일반적으로 데이터 판독기가 반환한 결과 집합에서 데이터를 읽는 것은 while 루프를 사용하여 각 행을 반복하는 것입니다. 읽기 메서드 반환 값은 bool 유형이며, 다음 행이 있으면 true가 반환되고 마지막 레코드에 대해서는 false가 반환됩니다. 조건이 거짓이 될 때까지 while 루프가 실행됩니다.
구문:
while(rdr.Read()) { // operation to be performed // Access columns // Data manipulation }
SQL 연결을 닫는 것과 마찬가지로 항상 데이터 리더를 닫는 것이 가장 좋습니다. 그동안 부분은 try 블록에 포함될 수 있으며 데이터 판독기 연결은 finally 블록에서 닫힐 수 있습니다.
구문:
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 }
코드:
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) { } } } }
출력:
코드:
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"); } } } }
출력:
따라서 이 기사에서는 C#의 데이터 리더에 대해 자세히 다루었습니다. 또한 데이터 판독기가 데이터 스트림에서 전달 방식으로만 읽을 수 있는 방법도 보여주었습니다. 또한 이 기사에서는 두 가지 유형의 데이터 리더인 .esql 데이터 리더와 oledb 데이터 리더에 대해 자세히 설명했습니다. 적절한 예와 함께 두 데이터 판독기의 작동을 보여주었습니다. 또한 이 기사에서는 NextResult 메서드를 사용하여 여러 결과 집합으로 작업하는 방법과 for 루프를 사용하여 각 데이터 행을 반복하는 방법에 대해서도 다루었습니다. 좀 더 자세히 알아보려면 샘플 프로그램을 작성하고 실습해 보는 것이 좋습니다.
DataReader C#에 대한 안내입니다. 여기서는 C#의 DataReader 소개와 코드 구현 및 출력과 함께 해당 예제를 논의합니다. 더 자세히 알아보려면 다른 추천 기사를 살펴보세요. –
위 내용은 데이터리더 C#의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!