DataSet是ADO.NET提供的两个基本组件之一,是实现离线访问数据库的关键技术。
其属性如下:
CaseSensitive |
获取或设置一个值,该值指示 DataTable 对象中的字符串比较是否区分大小写。 |
Container |
获取组件的容器。 |
DataSetName |
获取或设置当前 DataSet 的名称 |
DefaultViewManager |
获取 DataSet 所包含的数据的自定义视图,以允许使用自定义的 DataViewManager 进行筛选、搜索和导航。 |
DesignMode |
获取指示组件当前是否处于设计模式的值。 |
EnforceConstraints | 获取或设置一个值,该值指示在尝试执行任何更新操作时是否遵循约束原则。 |
Events |
获取附加到该组件的事件处理程序的列表。 |
ExtendedProperties |
获取与 DataSet 相关的自定义用户信息的集合。 |
HasErrors |
获取一个值,指示在此 DataTable 中的任何 DataSet 对象中是否存在错误。 |
IsInitialized |
获取一个值,该值指示是否已初始化 DataSet。 |
Locale |
获取或设置用于比较表中字符串的区域设置信息。 |
Namespace |
获取或设置 DataSet 的命名空间。 |
Prefix |
获取或设置一个 XML 前缀,该前缀是 DataSet 的命名空间的别名。 |
Relations |
获取用于将表链接起来并允许从父表浏览到子表的关系的集合。 |
RemotingFormat |
为远程处理期间使用的 SerializationFormat 获取或设置 DataSet。 |
SchemaSerializationMode |
获取或设置 SchemaSerializationMode 的 DataSet。 |
Site |
获取或设置 DataSet 的 ISite。 |
Tables |
获取包含在 DataSet 中的表的集合。 |
下面简单说一下应用DataSet的简单流程
一、创建数据源连接
SQLConnection conn =
new
SQLConnection(
"server=localhost;DataBase=db_Name;uid=sa;pwd=2wsx@WSX;"
);
二、创建SQLDataSetCommand对象
SQLDataSetCommand cmd =
new
SQLDataSetCommand(
"SELECT * FROM tb_数据表"
, con);
三、创建DataSet对象,并调用cmd中的FillData方法,填充DataSet(记得实战中要自己加上数据库的开启与关闭)
DataSet ds =
new
DataSet();
int n=
cmd.FillDataSet(ds,
"Authors"
);
个案分析及源代码展示
先在外部公共声明好SqlDataAdapter、DataSet,再创建一个Fill()方法,再在窗口加载时调用Fill()
SqlDataAdapter da;
DataSet ds;
public void Fill()
{
string sql = "select tb_Doctor .Id ,tb_Doctor .Name ,Password,(case sex when 1 then '男' else '女' end) as Sex"
+",Birth,HireDate,Title,tb_Department .Name as Department,Phone,Email," +
"HomeAddress,HomePhone,tb_Doctor .Memo "+
"from tb_Doctor ,tb_Department where tb_Doctor .DepartmentId=tb_Department .Id ";
using (SqlConnection conn = new SqlConnection(DBHelper.connString))
{
da = new SqlDataAdapter(sql ,conn );
ds =new DataSet() ;
da.Fill(ds );
dgv_DoctorList .DataSource =ds.Tables [0];
}
}
private void DoctorList_Load(object sender, EventArgs e)
{
Fill();
}
好了,今天的内容就到这里了,小结一下