1. 程式人生 > >DataReader轉DataTable,DataReader轉DataSet

DataReader轉DataTable,DataReader轉DataSet

fill static turn ram ++ data The cte exceptio

轉載

/// <summary>
        /// DataReader轉DataTable
        /// </summary>
        /// <param name="dataReader"></param>
        /// <returns></returns>
        public static DataTable ConvertDataReaderToDataTable(SqlDataReader dataReader)
        {
            ///定義DataTable
            DataTable datatable = new
DataTable(); try { ///動態添加表的數據列 for (int i = 0; i < dataReader.FieldCount; i++) { DataColumn myDataColumn = new DataColumn(); myDataColumn.DataType = dataReader.GetFieldType(i); myDataColumn.ColumnName
= dataReader.GetName(i); datatable.Columns.Add(myDataColumn); } ///添加表的數據 while (dataReader.Read()) { DataRow myDataRow = datatable.NewRow(); for (int i = 0; i < dataReader.FieldCount; i++) { myDataRow[i]
= dataReader[i].ToString(); } datatable.Rows.Add(myDataRow); myDataRow = null; } ///關閉數據讀取器 dataReader.Close(); return datatable; } catch (Exception ex) { ///拋出類型轉換錯誤 //SystemError.CreateErrorLog(ex.Message); throw new Exception(ex.Message, ex); } } /// <summary> /// DataReader轉DataSet /// </summary> /// <param name="reader"></param> /// <returns></returns> public static DataSet ConvertDataReaderToDataSet(SqlDataReader reader) { DataSet dataSet = new DataSet(); do { // Create new data table DataTable schemaTable = reader.GetSchemaTable(); DataTable dataTable = new DataTable(); if (schemaTable != null) { // A query returning records was executed for (int i = 0; i < schemaTable.Rows.Count; i++) { DataRow dataRow = schemaTable.Rows[i]; // Create a column name that is unique in the data table string columnName = (string)dataRow["ColumnName"]; //+ " // Add the column definition to the data table DataColumn column = new DataColumn(columnName, (Type)dataRow["DataType"]); dataTable.Columns.Add(column); } dataSet.Tables.Add(dataTable); // Fill the data table we just created while (reader.Read()) { DataRow dataRow = dataTable.NewRow(); for (int i = 0; i < reader.FieldCount; i++) { dataRow[i] = reader.GetValue(i); } dataTable.Rows.Add(dataRow); } } else { // No records were returned DataColumn column = new DataColumn("RowsAffected"); dataTable.Columns.Add(column); dataSet.Tables.Add(dataTable); DataRow dataRow = dataTable.NewRow(); dataRow[0] = reader.RecordsAffected; dataTable.Rows.Add(dataRow); } } while (reader.NextResult()); return dataSet; }

DataReader轉DataTable,DataReader轉DataSet