1. 程式人生 > >SqlDataReader C#資料庫查詢結果資料

SqlDataReader C#資料庫查詢結果資料

對於reader的處理

        // 摘要: 
        //     關閉 System.Data.SqlClient.SqlDataReader 物件。
        public override void Close();

        //
        // 摘要: 
        //     檢索一個布林值,該值指示是否已關閉指定的 System.Data.SqlClient.SqlDataReader 例項。
        //
        // 返回結果: 
        //     如果指定的 System.Data.SqlClient.SqlDataReader 例項已關閉,則為 true;否則為 false。
        public override bool IsClosed { get; }
對查詢記錄的處理
        //
        // 摘要: 
        //     獲取執行 Transact-SQL 語句所更改、插入或刪除的行數。
        //
        // 返回結果: 
        //     已更改、插入或刪除的行數;如果沒有任何行受到影響或語句失敗,則為 0;-1 表示 SELECT 語句。
        public override int RecordsAffected { get; }

        //
        // 摘要: 查詢
        //     獲取一個值,該值指示 System.Data.SqlClient.SqlDataReader 是否包含一行或多行。
        //
        // 返回結果: 
        //     如果 System.Data.SqlClient.SqlDataReader 包含一行或多行,則為 true;否則為 false。
        public override bool HasRows { get; }

        //
        // 摘要: 
        //     當讀取批處理 Transact-SQL 語句的結果時,使資料讀取器前進到下一個結果。
        //
        // 返回結果: 
        //     如果存在多個結果集,則為 true;否則為 false。
        public override bool NextResult();

對行的處理

        //
        // 摘要: 
        //     使 System.Data.SqlClient.SqlDataReader 前進到下一條記錄。
        //
        // 返回結果: 
        //     如果存在多個行,則為 true;否則為 false。
        //
        // 異常: 
        //   System.Data.SqlClient.SqlException:
        //     行命令文字時,SQL Server 返回了錯誤。
        public override bool Read();


        //
        // 摘要: 
        //     獲取當前行中的列數。
        //
        // 返回結果: 
        //     如果未放在有效的記錄集中,則為 0;否則為當前行中的列數。 預設值為 -1。
        //
        // 異常: 
        //   System.NotSupportedException:
        //     沒有對 SQL Server 例項的當前連線。
        public override int FieldCount { get; }

對行中列的處理

        //
        // 摘要: 
        //     獲取一個值,該值指示列中是否包含不存在的或缺少的值。
        //
        // 引數: 
        //   i:
        //     從零開始的列序號。
        //
        // 返回結果: 
        //     如果指定的列值與 System.DBNull 等效,則為 true;否則為 false。
        public override bool IsDBNull(int i);


        //
        // 摘要: 
        //     獲取一個表示指定列的資料型別的字串。
        //
        // 引數: 
        //   i:
        //     要查詢的列的從零開始的序號位置。
        //
        // 返回結果: 
        //     表示指定列的資料型別的字串。
        public override string GetDataTypeName(int i);


        //
        // 摘要: 
        //     獲取指定列的名稱。
        //
        // 引數: 
        //   i:
        //     從零開始的列序號。
        //
        // 返回結果: 
        //     指定列的名稱。
        public override string GetName(int i);


        //
        // 摘要: 
        //     獲取以本機格式表示的指定列的值。
        //
        // 引數: 
        //   i:
        //     從零開始的列序號。
        //
        // 返回結果: 
        //     對於 null 資料庫列,此方法返回 System.DBNull。
        public override object GetValue(int i);

對GetValue函式的分解處理
 //
        // 摘要: 
        //     獲取指定列的布林值形式的值。
        //
        // 引數: 
        //   i:
        //     從零開始的列序號。
        //
        // 返回結果: 
        //     列的值。
        //
        // 異常: 
        //   System.InvalidCastException:
        //     指定的強制轉換無效。
        public override bool GetBoolean(int i);
        //
        // 摘要: 
        //     獲取指定列的位元組形式的值。
        //
        // 引數: 
        //   i:
        //     從零開始的列序號。
        //
        // 返回結果: 
        //     指定列的位元組形式的值。
        //
        // 異常: 
        //   System.InvalidCastException:
        //     指定的強制轉換無效。
        public override byte GetByte(int i);
        //
        // 摘要: 
        //     從指定的列偏移量將位元組流讀入緩衝區,並將其作為從給定的緩衝區偏移量開始的陣列。
        //
        // 引數: 
        //   i:
        //     從零開始的列序號。
        //
        //   dataIndex:
        //     欄位中的索引,從其開始讀取操作。
        //
        //   buffer:
        //     要將位元組流讀入的緩衝區。
        //
        //   bufferIndex:
        //     buffer 中寫入操作開始位置的索引。
        //
        //   length:
        //     要複製到緩衝區中的最大長度。
        //
        // 返回結果: 
        //     讀取的實際位元組數。
        
        public override char GetChar(int i);


        //
        // 摘要: 
        //     獲取指定列的 System.DateTime 物件形式的值。
        //
        // 引數: 
        //   i:
        //     從零開始的列序號。
        //
        // 返回結果: 
        //     指定列的值。
        //
        // 異常: 
        //   System.InvalidCastException:
        //     指定的強制轉換無效。
        public override DateTime GetDateTime(int i);

        //
        // 摘要: 
        //     獲取指定列的 System.Decimal 物件形式的值。
        //
        // 引數: 
        //   i:
        //     從零開始的列序號。
        //
        // 返回結果: 
        //     指定列的值。
        //
        // 異常: 
        //   System.InvalidCastException:
        //     指定的強制轉換無效。
        public override decimal GetDecimal(int i);
        //
        // 摘要: 
        //     獲取指定列的雙精度浮點數形式的值。
        //
        // 引數: 
        //   i:
        //     從零開始的列序號。
        //
        // 返回結果: 
        //     指定列的值。
        //
        // 異常: 
        //   System.InvalidCastException:
        //     指定的強制轉換無效。
        public override double GetDouble(int i);


        
        
        //
        // 摘要: 
        //     獲取指定列的單精度浮點數形式的值。
        //
        // 引數: 
        //   i:
        //     從零開始的列序號。
        //
        // 返回結果: 
        //     指定列的值。
        //
        // 異常: 
        //   System.InvalidCastException:
        //     指定的強制轉換無效。
        public override float GetFloat(int i);

        //
        // 摘要: 
        //     獲取指定列的 16 位有符號整數形式的值。
        //
        // 引數: 
        //   i:
        //     從零開始的列序號。
        //
        // 返回結果: 
        //     指定列的值。
        //
        // 異常: 
        //   System.InvalidCastException:
        //     指定的強制轉換無效。
        public override short GetInt16(int i);
        //
        // 摘要: 
        //     獲取指定列的 32 位有符號整數形式的值。
        //
        // 引數: 
        //   i:
        //     從零開始的列序號。
        //
        // 返回結果: 
        //     指定列的值。
        //
        // 異常: 
        //   System.InvalidCastException:
        //     指定的強制轉換無效。
        public override int GetInt32(int i);
        //
        // 摘要: 
        //     獲取指定列的 64 位有符號整數形式的值。
        //
        // 引數: 
        //   i:
        //     從零開始的列序號。
        //
        // 返回結果: 
        //     指定列的值。
        //
        // 異常: 
        //   System.InvalidCastException:
        //     指定的強制轉換無效。
        public override long GetInt64(int i);

        //
        // 摘要: 
        //     檢索作為 System.IO.Stream 的二進位制、影象、varbinary、UDT 和變數資料型別。
        //
        // 引數: 
        //   i:
        //     從零開始的列序號。
        //
        // 返回結果: 
        //     流物件。
        //
        // 異常: 
        //   System.InvalidOperationException:
        //     連線中斷或在資料檢索期間已關閉。 資料檢索期間System.Data.SqlClient.SqlDataReader 處於關閉狀態。 沒有可讀取的就緒資料
        //     (例如,第一個 System.Data.SqlClient.SqlDataReader.Read() 未被呼叫或返回錯誤)。 按順序模式嘗試讀取上一步驟中讀取的列。
        //     沒有正在進行的非同步操作。 以順序模式執行時,這適用於所有 Get* 方法,讀取流時也可對其進行呼叫。
        //
        //   System.IndexOutOfRangeException:
        //     嘗試讀取不存在的列。
        //
        //   System.InvalidCastException:
        //     返回的型別不屬於以下型別之一: binary image varbinary UDT
        public override Stream GetStream(int i);
        //
        // 摘要: 
        //     獲取指定列的字串形式的值。
        //
        // 引數: 
        //   i:
        //     從零開始的列序號。
        //
        // 返回結果: 
        //     指定列的值。
        //
        // 異常: 
        //   System.InvalidCastException:
        //     指定的強制轉換無效。
        public override string GetString(int i);
        //
        // 摘要: 
        //     檢索作為 System.IO.TextReader 的 Char、 NChar、 NText、 NVarChar、 text、 varChar 和
        //     Variant data types。
        //
        // 引數: 
        //   i:
        //     要檢索的列。
        //
        // 返回結果: 
        //     返回的物件。
        //
        // 異常: 
        //   System.InvalidOperationException:
        //     連線中斷或在資料檢索期間已關閉。 資料檢索期間System.Data.SqlClient.SqlDataReader 處於關閉狀態。 沒有可讀取的就緒資料
        //     (例如,第一個 System.Data.SqlClient.SqlDataReader.Read() 未被呼叫或返回錯誤)。 按順序模式嘗試讀取上一步驟中讀取的列。
        //     沒有正在進行的非同步操作。 以順序模式執行時,這適用於所有 Get* 方法,讀取流時也可對其進行呼叫。
        //
        //   System.IndexOutOfRangeException:
        //     嘗試讀取不存在的列。
        //
        //   System.InvalidCastException:
        //     返回的型別不屬於以下型別之一: char nchar ntext nvarchar text varchar
        public override TextReader GetTextReader(int i);
        //
        // 摘要: 
        //     檢索指定列的 System.TimeSpan 物件形式的值。
        //
        // 引數: 
        //   i:
        //     從零開始的列序號。
        //
        // 返回結果: 
        //     指定列的值。
        //
        // 異常: 
        //   System.InvalidCastException:
        //     指定的強制轉換無效。
        public virtual TimeSpan GetTimeSpan(int i);
以上函式均來自官方的說明文件,去除了不常用和看不懂的.可以用來實現自定義的資料庫返回處理程式.