一、知识点描述
1、DataSet是ADO.NET的中心概念。可以把DataSet当成内存中的数据库,DataSet是不依赖于数据库的独立数据集合。也就是说,即使断开数据链路,或者关闭数据库,DataSet依然是可用的。
2、创建和刷新 DataSet 并依次更新原始数据的步骤:
- 通过 DataAdapter 使用数据源中的数据生成和填充 DataSet 中的每个 DataTable。
- 通过添加、更新或删除 DataRow 对象更改单个 DataTable 对象中的数据。
- 调用 DataAdapter 的 Update 方法,并将第二个 DataSet 作为参数传递。
3、DataSet所有数据都加载在内存上执行的,可以提高数据访问速度,提高硬盘数据的安全性,极大的改善了程序运行的速度和稳定性。
4、每一个DataSet对象是由若干个 DataTable对象组成。
5、DataSet使用方法:
- 把数据库中的数据通过DataAdapter对象填充DataSet。
- 通过DataAdapter对象操作DataSet实现更新数据库。
6、DataSet对象的三大特性
- 独立性。DataSet独立于各种数据源。
- 离线(断开)和连接。
- DataSet对象是一个可以用XML形式表示的数据视图,是一种数据关系视图。
二、思维导图
三、效果截图
四、示例代码
1 DataSet PubsSet = new DataSet(); 2 SqlConnection ConnPubs; 3 DataSet ds = new DataSet(); 4 5 private void frm_PatientInformationManage_Load(object sender, EventArgs e) 6 { 7 8 ConnPubs = new SqlConnection(); //声明并实例化SQL连接; 9 ConnPubs.ConnectionString = 10 ConfigurationManager.ConnectionStrings["Sql"].ConnectionString; //在字符串变量中,描述连接字符串所需的服务器地址、数据库名称、集成安全性(即是否使用Windows验证); 11 SqlCommand sqlCommand = new SqlCommand(); //声明并实例化SQL命令; 12 sqlCommand.Connection = ConnPubs; 13 sqlCommand.CommandText = "select P_id as 医疗卡号,P_name as 姓名 ,P_sex as 性别,P_birthday as 生日,P_nation as 民族,Feetype as 付费类型,P_tel as 电话,P_pym as 拼音码,P_address as 地址,P_career as 职业,P_bloodtype as 血型,P_allergic as 过敏药物,P_idcard as 身份证号,P_Photo from tb_patient"; 14 15 ConnPubs.Open(); 16 SqlDataAdapter da = new SqlDataAdapter(); 17 da.SelectCommand = sqlCommand; 18 da.Fill(PubsSet, "tb_patient"); 19 dataGridView1.DataSource = PubsSet.Tables["tb_patient"]; 20 21 this.dataGridView1.Columns["P_Photo"].Visible = false; //隐藏照片列 22 23 SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(); //声明并实例化SQL数据适配器,同时借助构造函数,将其SelectCommand属性设为先前创建的SQL命令; 24 sqlDataAdapter.SelectCommand = sqlCommand; //将SQL数据适配器的查询命令属性指向SQL命令; 25 DataTable tb_patient = new DataTable(); //声明并实例化数据表,用于保存所有班级,以用作下拉框数据源; 26 27 sqlDataAdapter.Fill(tb_patient); //SQL数据适配器读取数据,并填充班级数据表; 28 this.cmb_SearchPYM .DataSource = tb_patient; //将班级下拉框的数据源设为班级数据表; 29 // this.cmb_SearchPYM.DisplayMember = "P_pym"; //将班级下拉框的显示成员设为班级数据表的名称列; 30 this.cmb_SearchId .DataSource = tb_patient; 31 // this.cmb_SearchId.DisplayMember = "P_id"; 32 this.cmb_SearchId.DisplayMember = "医疗卡号"; 33 this.cmb_SearchPYM.DisplayMember = "拼音码"; 34 //this.cmb_SearchPYM.ValueMember = "U_id"; 35 36 37 }
原文地址:https://www.cnblogs.com/hsp9/p/9940103.html
时间: 2024-10-10 00:57:02