C#客戶端綁定DataView和DataTable的幾個技巧
系統
2842 0
這幾個問題算不上高級技巧,但是的確還有很多人不知道,尤其是對DataView了解比較少,下面代碼演示了如何綁定數據到combobx和datagridview,另外還包括了如何在綁定時過濾重復,設置聯動,以及如何利用DataRelation求匯總表格。程序界面請讀者自己生成,一個form,兩個combobox,三個datagridview就可以了。
參考界面如下
程序代碼如下
using
System;
using
System.ComponentModel;
using
System.Data;
using
System.Windows.Forms;
namespace
WindowsApplication6
...
{
public
partial
class
Form1:Form
...
{
public
Form1()
...
{
InitializeComponent();
initData();
}
System.Data.DataTabledt
=
new
DataTable();
System.Data.DataSetds
=
new
DataSet();
/**/
///
<summary>
///
初始化數據
///
</summary>
private
void
initData()
...
{
dt.TableName
=
"
Table1
"
;
ds.Tables.Add(dt);
dt.Columns.Add(
"
ID
"
,
typeof
(
string
));
dt.Columns.Add(
"
板塊
"
,
typeof
(
string
));
dt.Columns.Add(
"
積分
"
,
typeof
(
int
));
addData(dt,
"
jinjazz
"
,
"
delphi
"
,
50000
);
addData(dt,
"
jinjazz
"
,
"
Sqlserver
"
,
10000
);
addData(dt,
"
jinjazz
"
,
"
.net
"
,
20000
);
addData(dt,
"
zjcxc
"
,
"
Sqlserver
"
,
900000
);
addData(dt,
"
zjcxc
"
,
"
vb
"
,
10000
);
addData(dt,
"
zswang
"
,
"
delphi
"
,
70000
);
addData(dt,
"
zswang
"
,
"
.net
"
,
30000
);
}
private
void
addData(DataTabledt,
string
Name,
string
Catalog,
int
Salary)
...
{
System.Data.DataRowdrow
=
dt.NewRow();
drow[
"
ID
"
]
=
Name;
drow[
"
板塊
"
]
=
Catalog;
drow[
"
積分
"
]
=
Salary;
dt.Rows.Add(drow);
}
private
void
Form1_Load(
object
sender,EventArgse)
...
{
//
綁定所有ID到comboBox1
this
.comboBox1.DataSource
=
dt.DefaultView.ToTable(
true
,
new
string
[]
...
{
"
ID
"
}
);
this
.comboBox1.DisplayMember
=
"
ID
"
;
//
綁定所有板塊到comboBox2
this
.comboBox2.DataSource
=
new
DataView(dt);
this
.comboBox2.DisplayMember
=
"
板塊
"
;
//
設置兩個聯動刷新
this
.comboBox1.SelectedIndexChanged
+=
new
EventHandler(comboBox1_SelectedIndexChanged);
//
綁定所有數據到dataGridView1
this
.dataGridView1.DataSource
=
dt;
//
綁定所有數據到dataGridView2
this
.dataGridView2.DataSource
=
new
DataView(dt);
//
利用DataRelation求匯總表格
System.Data.DataTabledtGroup1
=
dt.DefaultView.ToTable(
true
,
"
ID
"
);
dtGroup1.TableName
=
"
Table2
"
;
ds.Tables.Add(dtGroup1);
System.Data.DataRelationdr
=
new
DataRelation(
"
relation
"
,dtGroup1.Columns[
"
ID
"
],dt.Columns[
"
ID
"
]);
ds.Relations.Add(dr);
dtGroup1.Columns.Add(
"
總積分
"
).Expression
=
"
sum(child(relation).積分)
"
;
dtGroup1.Columns.Add(
"
板塊數
"
).Expression
=
"
count(child(relation).板塊)
"
;
this
.dataGridView3.DataSource
=
dtGroup1;
}
void
comboBox1_SelectedIndexChanged(
object
sender,EventArgse)
...
{
//
設置combobox2和comboBox1同步
System.Data.DataViewdv
=
this
.comboBox2.DataSource
as
DataView;
dv.RowFilter
=
string
.Format(
"
ID='{0}'
"
,
this
.comboBox1.Text);
//
設置dataGridView2和comboBox1同步
dv
=
this
.dataGridView2.DataSource
as
DataView;
dv.RowFilter
=
string
.Format(
"
ID='{0}'
"
,
this
.comboBox1.Text);
}
}
}
C#客戶端綁定DataView和DataTable的幾個技巧
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元