SqlDataReader C#資料庫查詢結果資料
阿新 • • 發佈:2019-02-14
對於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);
以上函式均來自官方的說明文件,去除了不常用和看不懂的.可以用來實現自定義的資料庫返回處理程式.