ADO.Net中DataTable的应用
ADO.Net中DataTable的应用
一、知识点描述
1、DataTable 表示一个内存内关系数据的表,可以独立创建和使用,也可以由其他 .NET Framework 对象使用,最常见的情况是作为 DataSet 的成员使用。
2、创建DataTable
①使用相应的DataTable构造函数创建DataTable对象。
②使用Add方法将其添加到DataTable对象的Tables集合中,将其添加到DataSet中。
③使用DataAdapter对象的Fill方法方法在DataSet中创建。
3、按名称引用表中的列、关系和约束是区分大小写的。 因此,一个表中可以存在两个或两个以上名称相同(但大小写不同)的列、关系或约束。
4、在DataSet中创建DataTable之后,可以对数据表中的数据进行增、删、改、查等操作。
二、思维导图

三、效果截图

四、示例代码
1、创建表
DataTable dt = new DataTable();//创建一个空表 DataTable dt = new DataTable("Table");//创建一个名为"Table"的空表
2、创建列
DataColumn dc = new DataColumn();//创建空列 dt.Columns.Add(dc);//创建带列名的列 dt.Columns.Add("总价", typeof(String));//创建带列名和类型的列
3、创建行
DataRow dr = dt.NewRow();//创建空行 dt.Rows.Add(dr);//创建空行
4、复制表
DataTable dtNew = new DataTable(); dtNew = dt.Copy();//复制表 DataTable dtNew = dt.Copy(); //复制dt表数据结构 dtNew.Clear() //清空数据 for (int i = 0; i < dt.Rows.Count; i++) { if (条件语句) { dtNew.Rows.Add(dt.Rows[i].ItemArray); //添加数据行 } } DataTable dtNew = new DataTable(); dtNew = dt.Clone(); DataTable dtNew = new DataTable(); dtNew = dt.Copy(); dtNew.Rows.Clear();//清空表数据 dtNew.ImportRow(dt.Rows[0]);//这是加入的是第一行
5、具体示例
private void frm_PatientInformationManage_Load(object sender, EventArgs e) { SqlConnection sqlConnection = new SqlConnection(); //声明并实例化SQL连接; sqlConnection.ConnectionString = ConfigurationManager.ConnectionStrings["Sql"].ConnectionString; //在字符串变量中,描述连接字符串所需的服务器地址、数据库名称、集成安全性(即是否使用Windows验证); SqlCommand sqlCommand = new SqlCommand(); //声明并实例化SQL命令; sqlCommand.Connection = sqlConnection; 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"; sqlConnection.Open(); SqlDataAdapter da = new SqlDataAdapter(); da.SelectCommand = sqlCommand; DataSet ds = new DataSet(); da.Fill(ds, "tb_patient"); dataGridView1.DataSource = ds.Tables["tb_patient"]; this.dataGridView1.Columns["P_Photo"].Visible = false; //隐藏照片列 SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(); //声明并实例化SQL数据适配器,同时借助构造函数,将其SelectCommand属性设为先前创建的SQL命令; sqlDataAdapter.SelectCommand = sqlCommand; //将SQL数据适配器的查询命令属性指向SQL命令; DataTable tb_patient = new DataTable(); //声明并实例化数据表,用于保存所有患者,以用作下拉框数据源; //打开SQL连接; sqlDataAdapter.Fill(tb_patient); //SQL数据适配器读取数据,并填充患者数据表; this.cmb_SearchPYM .DataSource = tb_patient; //将班级下拉框的数据源设为患者数据表; this.cmb_SearchId .DataSource = tb_patient; this.cmb_SearchId.DisplayMember = "医疗卡号"; this.cmb_SearchPYM.DisplayMember = "拼音码"; }
浙公网安备 33010602011771号