这几个问题算不上高级技巧,但是的确还有很多人不知道,尤其是对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#使用DataBinding、DataView进行数据绑定一些实例"这个压缩包文件提供了关于如何在C#中利用DataBinding和DataView技术来实现数据绑定的具体示例。下面我们将详细探讨这两个概念以及它们在实际应用中的用法。 **...
### C#中灵活使用DataView #### 一、DataView简介与作用 DataView是.NET框架中的一个核心组件,主要用于对DataSet或DataTable中的数据进行筛选、排序、分组等操作,而无需更改原始数据集。这使得开发人员能够在不...
在C#编程环境中,`DataView`是一个非常重要的数据处理组件,主要用来处理和展示`DataTable`中的数据。`DataView`提供了灵活的数据筛选、排序和分组功能,使得开发者可以方便地对数据进行操作。本篇文章将深入探讨`...
今天,我们将讨论 C# WINFORM 控件双向绑定的秘密,并提供两个简单的封装方法来实现双向绑定。 首先,让我们来讨论为什么需要双向绑定。 在 WinForm 开发中,我们经常需要将控件的值与数据源的值绑定,以便在控件的...
在.NET框架中,DataTable、DataView和DataGrid是用于数据操作和展示的重要组件,尤其在C#编程中广泛使用。这三个组件在数据处理流程中各司其职,为开发人员提供了方便的数据管理机制。 首先,`DataTable`是.NET中的...
通过以上介绍,我们可以看到“Datagridview与Datatable同步排序”不仅是两个控件之间的简单绑定,更是涉及到了数据管理、用户体验等多个方面的综合应用。开发者在实现这一功能时,不仅要关注技术细节,还要充分考虑...
这里使用了`DefaultView`属性,它是一个DataView,可以看作是DataTable的一个可筛选、可排序的视图,对于绑定来说非常方便。 在DataGrid中自定义列的显示和编辑也是常见的需求。你可以通过在XAML中指定`...
在ASP.NET的C#开发中,`DataView`是一个非常重要的数据绑定对象,它提供了对数据源的强大排序、筛选和格式化功能。本篇将详细阐述`DataView`的使用方法,包括其基本概念、创建、排序(Sort)、筛选(Filter)等核心...
本文将详细介绍`DataView`的内建过滤和排序功能,特别是其两个关键属性——`RowFilter`和`Sort`。 #### 二、`DataView`的基础知识 在ADO.NET中,`DataView`是构建于`DataTable`之上的一层抽象。它不是直接存储数据...
- **`DataGrid`**则是用户界面元素,用于展示和交互数据,通常绑定到`DataTable`或`DataView`。 理解这三个概念之间的区别和联系对于高效地管理和展示数据至关重要,尤其是在使用C#进行Windows Forms应用开发时。...
1. 需要创建多个DataView对象来实现多个基于同一个DataTable的不同视图。 2. 需要了解DataView对象的使用方法和特点。 DataView对象是ADO.NET中的一种强大的对象,提供了多种功能和特点,能够帮助开发者更好地处理...
`DataView`是`DataTable`的一个视图,允许我们以灵活的方式对数据进行排序、筛选和分组。它不是数据库表的物理副本,而是一个动态的、内存中的数据集表示,方便我们在页面上进行数据操作。`DataView`的主要特点包括...
`DataView`是一个在.NET框架中非常重要的数据呈现和操作工具,主要用在Windows Forms环境中,尤其是与数据绑定相关的应用。它提供了灵活的数据过滤、排序和分页功能,使得开发者可以方便地对数据源进行视图级别的...
在C#编程中,DataTable是一种非常重要的数据容器,它允许我们在内存中存储和操作数据,类似于数据库中的表。本文将深入探讨C#中DataTable控件的详细应用,并结合源代码进行解析。 首先,DataTable是System.Data命名...
- **数据源设置**:在C#中,通常使用DataSet、DataTable或DataView作为数据源,将数据库中的记录映射到TreeView的节点。首先,我们需要连接到SQL Server 2005数据库,执行SQL查询获取数据,然后填充到DataTable对象...
总的来说,这个程序涵盖了C#中基础但关键的几个方面:集合操作、数据库交互、数据视图和用户界面组件的使用。通过深入理解并实践这些知识点,开发者可以构建出功能丰富的桌面应用程序。无论是数据库管理、数据展示...
- 这个标题指出了本文档的主要内容:使用C#语言实现无限级别的树形视图(TreeView)绑定。这里的“无限级”意味着树结构可以有任意深度的节点,而不仅仅限于固定的几层。 #### 二、描述解析 - **描述**:“C#无限级...
同时 DataView 也可以为窗体控件和 Web 控件提供数据绑定功能。在每一个 DataTable 中内建了一个 DataView,可以通过 DefaultView 属性来访问。可以对 DataView 进行排序、筛选和搜索。 对 DataView 进行排序可以...