为DataSet对象中的表指定主键、建立关系

为DataSet对象中的表指定主键、建立关系,可以保证数据的完整性,例如,主键取值不能重复(例如,定义学号位主键,学号不能重复),不能删除主表中的数据(例如某个学生),而不删除另一个表中和其有关的数据(例如另一个表中的学生成绩)等等。
. 设置表的主键:(其中MyDataSet是DataSet类对象)
DataColumn[] pKey=new DataColumn[1];
pKey[0]=MyDataSet.Tables["Student"].Columns["StudentNum"];
MyDataSet.Tables["Student"].PrimaryKey=pKey;
. 建立两个表的主从关系:(MyDataSet是DataSet类对象,主从关系意义见8.13节)
MyDataSet.Relations.Add("NewRelation",//关系的名称
MyDataSet.Tables["Student"].Columns["StudentNum"],//该关系的父列
MyDataSet.Tables["Score"].Columns["StudentNum"]);//该关系的子列
DataGrid控件和数据绑定概念
DataGrid控件用来按行和列格式显示DataSet对象中指定数据表的数据。其常用的属性和方法如下:
. 属性DataSource:用来指定要显示的数据表所在的数据集DataSet对象。
. 属性DataMember:用来指定在数据集DataSet对象中要显示的数据表的名字。当这两个属性被正确设定,DataGrid控件将以网格形式正确显示指定数据表。
. 属性CaptionText:获取或设置DataGrid控件标题的文本
. 属性CaptionVisible:该值指示DataGrid控件的标题是否可见。
168
. 属性TableStyles:可以编辑修改DataGrid控件的外观,具体例子见后边例子。
. 属性CurrentRowIndex:获取或设置DataGrid控件中当前选定行的索引号。
. 属性Item:索引指示器定义:object this[int rowIndex,int columnIndex],例如,DataGraid控件属性Name=grid,得到第2行第3列数据用如下语句:
object ob=grid[2][3];
. 属性AllowSorting:指示是否可以通过单击列标头对网格进行重新排序。
. 属性ReadOnly:获取或设置网格控件是否处于只读模式。
. 方法Select(Int32):选择参数指定行,参数为行号。
当DataGraid控件的属性DataSource和DataMember被正确设定,DataGraid控件将以网格形式正确显示DataSet对象中相应数据表。DataGraid控件中的数据被修改后,DataSet对象中相应数据表中的数据也被修改。这种关系叫做数据绑定。数据绑定有两个要点:第一,支持数据绑定的控件能按绑定的数据源正确显示数据源的数据,第二,在支持数据绑定控件中被修改的数据能被正确写回数据源,这里的数据源一般是数据集DataSet对象中的一个表或者是表中的一个字段。许多控件都支持数据绑定。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在C#,可以使用DataSet类来示一个内存的数据集合,DataSet可以包含多个数据(DataTable)以及数据关系。如果需要访问DataSet指定数据,可以通过索引器或名来获取数据。 以下是使用索引器访问DataSet指定数据的示例代码: ``` DataSet dataSet = new DataSet(); // 假设已经使用DataAdapter将数据填充到DataSet DataTable dataTable = dataSet.Tables[0]; // 处理数据 ``` 以上代码,首先创建了一个DataSet对象,然后使用DataAdapter将数据填充到DataSet。接着使用索引器获取了第一个数据,该索引器的参数可以是数据的索引或名。 以下是使用名访问DataSet指定数据的示例代码: ``` DataSet dataSet = new DataSet(); // 假设已经使用DataAdapter将数据填充到DataSet DataTable dataTable = dataSet.Tables["TableName"]; // 处理数据 ``` 以上代码,使用名来获取数据,与使用索引器获取数据相比,使用名的方式更加直观。 需要注意的是,在访问DataSet的数据时,应该先判断数据是否存在,以避免出现空引用异常。可以使用DataSet对象的Tables属性来获取所有的数据,然后判断指定的数据是否在其。 示例代码: ``` if (dataSet.Tables.Contains("TableName")) { DataTable dataTable = dataSet.Tables["TableName"]; // 处理数据 } ``` 以上代码,先使用Tables属性获取所有的数据,然后使用Contains方法判断指定的数据是否在其。如果数据存在,就可以使用名来获取数据了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值