04 | /// <param name="ColumnName">欄位名用逗號分隔</param> |
05 | /// <param name="value">data陣列 , rowmajor</param> |
06 | /// <returns>DataTable</returns> |
07 | public static DataTable CreateDataTable( string ColumnName, string [,] value) |
18 | DataTable ResultTable = new DataTable(); |
19 | string [] sep = new string [] { "," }; |
20 | string [] TempColName = ColumnName.Split(sep, StringSplitOptions.RemoveEmptyEntries); |
21 | DataColumn[] CName = new DataColumn[TempColName.Length]; |
22 | for (i = 0; i < TempColName.Length; i++) |
24 | DataColumn c1 = new DataColumn(TempColName[i].ToString().Trim(), typeof ( object )); |
25 | ResultTable.Columns.Add(c1); |
29 | for (i = 0; i < value.GetLength(0); i++) |
31 | DataRow newrow = ResultTable.NewRow(); |
32 | for (j = 0; j < TempColName.Length; j++) |
34 | newrow[j] = string .Copy(value[i, j].ToString()); |
36 | ResultTable.Rows.Add(newrow); |
建立空的DataTable從資料庫的表格定義
02 | /// 建立空的DataTable從資料庫的表格定義 |
04 | /// <param name="connectString">The connect string.</param> |
05 | /// <param name="TableName">Name of the table.</param> |
06 | /// <returns></returns> |
07 | public static DataTable CreateEmptyDataTableFromDb( string connectString, string TableName) |
09 | DataTable dt = new DataTable(); |
10 | string SqlCmd = "Select * from " + TableName + " where 1 <> 1" ; |
11 | using (SqlConnection cn = new SqlConnection(connectString)) |
14 | using (SqlCommand cmd = new SqlCommand(SqlCmd, cn)) |
16 | using (SqlDataReader dr = cmd.ExecuteReader()) |
將SqlDataSource select之後的資料轉成DataTable
02 | /// 將SqlDataSource select之後的資料轉成DataTable |
04 | /// <param name="Source">The source.</param> |
05 | /// <returns></returns> |
06 | public static DataTable SqlDataSourceToDataTable(SqlDataSource Source) |
08 | DataView dv = (DataView)Source.Select(DataSourceSelectArguments.Empty); |
得到查詢後的結果
02 | /// Gets the query result. |
04 | /// <param name="connectString">The connect string.</param> |
05 | /// <param name="SqlCmd">The SQL CMD.</param> |
06 | /// <returns></returns> |
07 | public static DataTable GetQueryResult( string connectString, string SqlCmd) |
09 | DataTable dt = new DataTable(); |
10 | using (SqlConnection cn = new SqlConnection(connectString)) |
13 | using (SqlCommand cmd = new SqlCommand(SqlCmd, cn)) |
15 | using (SqlDataReader dr = cmd.ExecuteReader()) |
將DataTable中選取的列轉為字串陣列
將字串陣列轉為DataRow根據DataTable定義
02 | /// 將DataTable中選取的列轉為字串陣列 |
04 | /// <param name="dt">The dt.</param> |
05 | /// <param name="SelectIndex">Index of the select.</param> |
06 | /// <returns></returns> |
07 | public static string [] DataTableRowToString(DataTable dt, int SelectIndex) |
11 | string [] result = new string [dt.Columns.Count]; |
12 | for ( int i = 0; i < dt.Columns.Count; i++) |
13 | result[i] = dt.Rows[SelectIndex][i].ToString(); |
22 | /// 將字串陣列轉為DataRow根據DataTable定義 |
24 | /// <param name="dt">The dt.</param> |
25 | /// <param name="InputData">The input data.</param> |
26 | /// <returns></returns> |
27 | public static DataRow StringToDataRow(DataTable dt, string [] InputData) |
31 | DataRow a = dt.NewRow(); |
32 | for ( int i = 0; i < dt.Columns.Count; i++) |
33 | a[i] = string .Copy(InputData[i]); |
選出DataRow從DataTable
02 | /// 選出DataRow從DataTable |
04 | /// <param name="dt">The dt.</param> |
05 | /// <param name="Condition">The condition.</param> |
06 | /// <returns></returns> |
07 | public static DataRow[] SelectFromDataTable(DataTable dt, string Condition) |
09 | if (Condition != string .Empty) |
10 | return dt.Select(Condition); |
將DataTable根據欄位名稱順向排序
02 | /// 將DataTable根據欄位名稱順向排序 |
04 | /// <param name="dt">The dt.</param> |
05 | /// <param name="ColumnName">Name of the column.</param> |
06 | /// <returns></returns> |
07 | public static DataRow[] SortDataTableAsc(DataTable dt, string ColumnName) |
09 | return dt.Select( "" , ColumnName + " Asc" ); |
將DataTable根據欄位名稱逆向排序
02 | /// 將DataTable根據欄位名稱逆向排序 |
04 | /// <param name="dt">The dt.</param> |
05 | /// <param name="ColumnName">Name of the column.</param> |
06 | /// <returns></returns> |
07 | public static DataRow[] SortDataTableDesc(DataTable dt, string ColumnName) |
09 | return dt.Select( "" , ColumnName + " desc" ); |
將DataTable欄位名稱位置交換
04 | /// <param name="dtSource">The dt source.</param> |
05 | /// <param name="ColumnName">Name of the column.</param> |
06 | /// <param name="ColumnIndex">Index of the column.</param> |
07 | /// <returns></returns> |
08 | public static DataTable ExchangeDataColumn(DataTable dtSource, string ColumnName, string ColumnIndex) |
10 | DataTable dt = new DataTable(); |
13 | dt.Columns[ColumnName].SetOrdinal(Convert.ToInt16(ColumnIndex)); |
從DataTable找單主鍵值符合的資料
02 | /// 從DataTable找單主鍵值符合的資料. |
04 | /// <param name="dtSource">The dt source.</param> |
05 | /// <param name="ColumnName">Name of the column.</param> |
06 | /// <param name="ColumnValue">The column value.</param> |
07 | /// <returns></returns> |
08 | public static DataTable FindDataTableSingleKey(DataTable dtSource, string ColumnName, string ColumnValue) |
10 | DataTable dt = dtSource; |
12 | dt.PrimaryKey = new DataColumn[] { dt.Columns[ColumnName] }; |
14 | DataRow dr = dt.Rows.Find(ColumnValue); |
18 | DataTable newdt = new DataTable(); |
19 | foreach (DataColumn column in dt.Columns) |
21 | newdt.Columns.Add(column.ToString()); |
23 | DataRow newdr = newdt.NewRow(); |
26 | newdr = newdt.NewRow(); |
27 | foreach ( object item in dr.ItemArray) |
29 | newdr[i] = dr.ItemArray[i]; |
32 | newdt.Rows.Add(newdr); |
從DataTable找多重主鍵值符合的資料
02 | /// 從DataTable找多重主鍵值符合的資料. |
04 | /// <param name="dtSource">The dt source.</param> |
05 | /// <param name="ColumnName">Name of the column.</param> |
06 | /// <param name="ColumnValue">The column value.</param> |
07 | /// <returns></returns> |
08 | public static DataTable FindDataTableMultiKey(DataTable dtSource, string [] ColumnName, string [] ColumnValue) |
10 | DataTable dt = dtSource; |
12 | DataColumn[] MultiKey = new DataColumn[ColumnName.Length]; |
13 | for ( int j = 0; j < ColumnName.Length; j++) |
14 | MultiKey[j] = dt.Columns[ColumnName[j].ToString()]; |
15 | dt.PrimaryKey = MultiKey; |
17 | object [] search = new object [ColumnValue.Length]; |
18 | for ( int i = 0; i < search.Length; i++) |
20 | search[i] = string .Copy(ColumnValue[i]); |
23 | DataRow dr = dt.Rows.Find(search); |
27 | DataTable newdt = new DataTable(); |
28 | foreach (DataColumn column in dt.Columns) |
30 | newdt.Columns.Add(column.ToString()); |
32 | DataRow newdr = newdt.NewRow(); |
35 | newdr = newdt.NewRow(); |
36 | foreach ( object item in dr.ItemArray) |
38 | newdr[i] = dr.ItemArray[i]; |
41 | newdt.Rows.Add(newdr); |
將DataRow加入DataTable
02 | /// 將DataRow加入DataTable. |
04 | /// <param name="dtSource">The dt source.</param> |
05 | /// <param name="dr">The dr.</param> |
06 | /// <returns></returns> |
07 | public static DataTable MergeSearchDataToTable(DataTable dtSource, DataRow[] dr) |
10 | DataTable dt = new DataTable(); |
12 | foreach (DataColumn dc in dtSource.Columns) |
14 | dt.Columns.Add(dc.ToString()); |
15 | dt.Columns[dc.ToString()].DataType = dc.DataType; |
18 | foreach (DataRow item in dr) |
20 | DataRow row = dt.NewRow(); |
22 | foreach (DataColumn dc in dtSource.Columns) |
25 | row[dc.ToString()] = item.ItemArray[i]; |