在ADO.NET中,DataSet包括了DataTable、DataRow、DataColumn等类。
DataTable用于存储一张表,调用DataAdapter的Fill()方法,可以把来自数据库的数据填充到本机的DataTable中。一个DataSet中可以包括多个DataTable,并且可以通过DataRelation设置这些DataTable之间的关系。
DataTable的常用属性和方法如下:
名称 | 说明 |
Rows | 获取或设置当前DataTable内的所有行,即相应数据表里的所有记录 |
Columns | 获取或设置当前DataTable内的所有列 |
TableName | 获取或设置当前DataTable的名称 |
AcceptChanges()方法 | 提交对该表的所有修改 |
NewRow()方法 | 为当前有DataTable增加一个新行,返回DataRow对象 |
Clear()方法 | 清除DataTable中原来的数据,通常在获取新的数据前调用 |
下面对上表中的部分内容再做进一步的说明。
(1)Rows属性具有如下常用方法:
1)Add():把DataTable的NewRow()方法所创建的行追加到末尾。
2)InsertAt():把NewRow()方法所创建的行插入到索引号指定的位置。
3)Remove():删除指定的DataRow对象。
4)RemoveAt():根据索引号,直接删除指定行的数据。
(2)Columns属性具有如下常用方法:
1)Add():把新创建的列添加到列集合中。
2)AddRange():把DataColumn类型的数组添加到列集合中。
3)Remove():把指定名称的列从列集合中移除。
4)RemoveAt():把指定索引位置的列从列集合中移除。
思维导图:
示例代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace 住院药房管理系统
{
public partial class 请领单查询 : Form
{
public 请领单查询()
{
InitializeComponent();
}
private void 请领单查询_Load(object sender, EventArgs e)
{
SqlConnection sqlConnection = new SqlConnection(); //声明并实例化SQL连接;
sqlConnection.ConnectionString =
"Server=(local);Database=MedStoreBase;Integrated Security=sspi"; //在字符串变量中,描述连接字符串所需的服务器地址、数据库名称、集成安全性(即是否使用Windows验证);
SqlCommand sqlCommand = new SqlCommand(); //声明并实例化SQL命令;
sqlCommand.Connection = sqlConnection; //将SQL命令的连接属性指向SQL连接;
sqlCommand.CommandText = "SELECT ApplyNo as 请领单编号,MedicineNo as 药品编号,MedicineName as 药品名称,ApplyNumber as 请领数量,ApplyDate as 请领日期,Applicant as 请领人姓名,OperatorNo as 操作员工号,OperateDate as 操作日期,Completed as 是否完成 FROM Tb_apply ;"; //指定SQL命令的命令文本;该命令查询所有药品请领单;
SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(); //声明并实例化SQL数据适配器;
sqlDataAdapter.SelectCommand = sqlCommand; //将SQL数据适配器的查询命令属性指向SQL命令;
DataTable applyTable = new DataTable(); //声明并实例化数据表,用于保存所有药品请领单,以用作数据网格视图的数据源;
sqlConnection.Open(); //打开SQL连接;
sqlDataAdapter.Fill(applyTable); //SQL数据适配器读取数据,并填充药品请领单数据表;
sqlConnection.Close(); //关闭SQL连接;
this.dgv_apply.DataSource = applyTable; //将数据网格视图的数据源设为药品请领单数据表;
}
}
}
运行效果截图: