DataReader轉DataTable,DataReader轉DataSet
阿新 • • 發佈:2018-08-24
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 = newDataTable(); 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