DataTable一些小應用
来源:互联网 发布:wifi大数据分析 编辑:程序博客网 时间:2024/06/06 02:36
01
/// <summary>
02
/// 建立datatable
03
/// </summary>
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)
08
{
09
/* 輸入範例
10
string cname = " name , sex ";
11
string[,] aaz = new string[4, 2];
12
for (int q = 0; q < 4; q++)
13
for (int r = 0; r < 2; r++)
14
aaz[q, r] = "1";
15
dataGridView1.DataSource = NewMediaTest1.Model.Utility.DataSetUtil.CreateDataTable(cname, aaz);
16
*/
17
int
i,j;
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++)
23
{
24
DataColumn c1 =
new
DataColumn(TempColName[i].ToString().Trim(),
typeof
(
object
));
25
ResultTable.Columns.Add(c1);
26
}
27
if
(value !=
null
)
28
{
29
for
(i = 0; i < value.GetLength(0); i++)
30
{
31
DataRow newrow = ResultTable.NewRow();
32
for
(j = 0; j < TempColName.Length; j++)
33
{
34
newrow[j] =
string
.Copy(value[i, j].ToString());
35
}
36
ResultTable.Rows.Add(newrow);
37
}
38
}
39
return
ResultTable;
40
}
建立空的DataTable從資料庫的表格定義
01
/// <summary>
02
/// 建立空的DataTable從資料庫的表格定義
03
/// </summary>
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)
08
{
09
DataTable dt =
new
DataTable();
10
string
SqlCmd =
"Select * from "
+ TableName +
" where 1 <> 1"
;
11
using
(SqlConnection cn =
new
SqlConnection(connectString))
12
{
13
cn.Open();
14
using
(SqlCommand cmd =
new
SqlCommand(SqlCmd, cn))
15
{
16
using
(SqlDataReader dr = cmd.ExecuteReader())
17
{
18
dt.Load(dr);
19
}
20
}
21
}
22
return
dt;
23
}
將SqlDataSource select之後的資料轉成DataTable
01
/// <summary>
02
/// 將SqlDataSource select之後的資料轉成DataTable
03
/// </summary>
04
/// <param name="Source">The source.</param>
05
/// <returns></returns>
06
public
static
DataTable SqlDataSourceToDataTable(SqlDataSource Source)
07
{
08
DataView dv = (DataView)Source.Select(DataSourceSelectArguments.Empty);
09
return
dv.Table;
10
}
得到查詢後的結果
01
/// <summary>
02
/// Gets the query result.
03
/// </summary>
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)
08
{
09
DataTable dt =
new
DataTable();
10
using
(SqlConnection cn =
new
SqlConnection(connectString))
11
{
12
cn.Open();
13
using
(SqlCommand cmd =
new
SqlCommand(SqlCmd, cn))
14
{
15
using
(SqlDataReader dr = cmd.ExecuteReader())
16
{
17
dt.Load(dr);
18
}
19
}
20
}
21
return
dt;
22
}
將DataTable中選取的列轉為字串陣列
將字串陣列轉為DataRow根據DataTable定義
01
/// <summary>
02
/// 將DataTable中選取的列轉為字串陣列
03
/// </summary>
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)
08
{
09
try
10
{
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();
14
return
result;
15
}
16
catch
(Exception e)
17
{
18
return
null
;
19
}
20
}
21
/// <summary>
22
/// 將字串陣列轉為DataRow根據DataTable定義
23
/// </summary>
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)
28
{
29
try
30
{
31
DataRow a = dt.NewRow();
32
for
(
int
i = 0; i < dt.Columns.Count; i++)
33
a[i] =
string
.Copy(InputData[i]);
34
return
a;
35
}
36
catch
(Exception e)
37
{
38
return
null
;
39
}
40
}
選出DataRow從DataTable
01
/// <summary>
02
/// 選出DataRow從DataTable
03
/// </summary>
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)
08
{
09
if
(Condition !=
string
.Empty)
10
return
dt.Select(Condition);
11
else
12
return
dt.Select();
13
}
將DataTable根據欄位名稱順向排序
01
/// <summary>
02
/// 將DataTable根據欄位名稱順向排序
03
/// </summary>
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)
08
{
09
return
dt.Select(
""
, ColumnName +
" Asc"
);
10
}
將DataTable根據欄位名稱逆向排序
01
/// <summary>
02
/// 將DataTable根據欄位名稱逆向排序
03
/// </summary>
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)
08
{
09
return
dt.Select(
""
, ColumnName +
" desc"
);
10
}
將DataTable欄位名稱位置交換
01
/// <summary>
02
/// 將DataTable欄位名稱位置交換
03
/// </summary>
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)
09
{
10
DataTable dt =
new
DataTable();
11
dt = dtSource;
12
//變更欄位
13
dt.Columns[ColumnName].SetOrdinal(Convert.ToInt16(ColumnIndex));
14
return
dt;
15
}
從DataTable找單主鍵值符合的資料
01
/// <summary>
02
/// 從DataTable找單主鍵值符合的資料.
03
/// </summary>
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)
09
{
10
DataTable dt = dtSource;
11
//1.設定主鍵
12
dt.PrimaryKey =
new
DataColumn[] { dt.Columns[ColumnName] };
13
//2.搜尋DataRow
14
DataRow dr = dt.Rows.Find(ColumnValue);
15
if
(dr !=
null
)
16
{
17
//3.將找到的資料放到另一個DataTable
18
DataTable newdt =
new
DataTable();
19
foreach
(DataColumn column
in
dt.Columns)
20
{
21
newdt.Columns.Add(column.ToString());
22
}
23
DataRow newdr = newdt.NewRow();
24
int
i = 0;
25
//讀取過濾的資料
26
newdr = newdt.NewRow();
27
foreach
(
object
item
in
dr.ItemArray)
28
{
29
newdr[i] = dr.ItemArray[i];
30
i++;
31
}
32
newdt.Rows.Add(newdr);
33
return
newdt;
34
}
35
else
36
{
37
return
null
;
38
}
39
}
從DataTable找多重主鍵值符合的資料
01
/// <summary>
02
/// 從DataTable找多重主鍵值符合的資料.
03
/// </summary>
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)
09
{
10
DataTable dt = dtSource;
11
//1.設定多個主鍵
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;
16
//2.欲查詢的資料
17
object
[] search =
new
object
[ColumnValue.Length];
18
for
(
int
i = 0; i < search.Length; i++)
19
{
20
search[i] =
string
.Copy(ColumnValue[i]);
21
}
22
//3.搜尋DataRow
23
DataRow dr = dt.Rows.Find(search);
24
if
(dr !=
null
)
25
{
26
//4.將找到的資料放到另一個DataTable
27
DataTable newdt =
new
DataTable();
28
foreach
(DataColumn column
in
dt.Columns)
29
{
30
newdt.Columns.Add(column.ToString());
31
}
32
DataRow newdr = newdt.NewRow();
33
int
i = 0;
34
//讀取過濾的資料
35
newdr = newdt.NewRow();
36
foreach
(
object
item
in
dr.ItemArray)
37
{
38
newdr[i] = dr.ItemArray[i];
39
i++;
40
}
41
newdt.Rows.Add(newdr);
42
return
newdt;
43
}
44
else
45
{
46
return
null
;
47
}
48
}
將DataRow加入DataTable
01
/// <summary>
02
/// 將DataRow加入DataTable.
03
/// </summary>
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)
08
{
09
//建立新的DataTable
10
DataTable dt =
new
DataTable();
11
//建立新的DataTable Columns
12
foreach
(DataColumn dc
in
dtSource.Columns)
13
{
14
dt.Columns.Add(dc.ToString());
15
dt.Columns[dc.ToString()].DataType = dc.DataType;
16
}
17
int
i = 0;
//讀取過濾的資料
18
foreach
(DataRow item
in
dr)
19
{
20
DataRow row = dt.NewRow();
21
i = 0;
22
foreach
(DataColumn dc
in
dtSource.Columns)
23
{
24
//建立DataRow的資料
25
row[dc.ToString()] = item.ItemArray[i];
26
i++;
27
}
28
dt.Rows.Add(row);
29
}
30
return
dt;
31
}
- DataTable一些小應用
- DataTable的一些介绍
- dataTable一些使用方法
- DataTable的一些总结
- 关于Datatable的一些用法
- datatable的一些常用用法
- DataTable的一些使用技巧
- datatable的一些小技巧
- DataTable的一些基础用法
- Datatable的一些功能参数
- DataTable的一些特殊用法:Select
- DataTable的一些特殊用法:Select
- C#中DataTable的一些常用操作
- DataTable的一些特殊用法:Select
- C#中DataSet、DataTable、DataRow一些例子
- DataTable
- DataTable
- DataTable
- Ext多行工具栏
- gdb相关(gdb十分钟教程)
- Android基本组件08(DatePicker,TimePicker)
- Makefile文件
- 直接用html代码实现页面的刷新
- DataTable一些小應用
- #ifndef,#define #endif作用
- 软件公司转型讨论
- Linux 用户和用户组
- Linux C 函数 内存及字符串操作
- 执行命令zip加密文件
- Android应用程序安装过程源代码分析
- Linux下解压命令大全 解压缩 tar bz2 zip tar.gz gz
- [我对CTO的理解] CTO需要人格魅力,更要有技术魅力