SqlDataAdapter
ado.net提供的数据库操作,在这些操作中 数据库连接对象(SqlConnection),和数据命令对象(Sqlcommand)是必须使用的;
但有两种操作的方式;
-
SqlDateReader 由于是直接访问数据库,所以效率高;但使用起来不方便
-
SqlDateAdapter 可以把数据库的数据缓存在 内存当中,以数据集的方式进行填充。
- 这种方式使用起来比较方便,更为简单,但是性能较为消耗(一般情况下 两者性能忽略不计)
DataSet 临时数据库
DataSet 是C#中用来存储数据库数据的,作用是在内存中模拟数据库,
- 数据库 DataSet
- 表 DataTable
- 列 DataColumn
- 行 DataRow
手动使用DataSet 创建数据库 显示在DataGridView中
//创建数据库
DataSet dataSet = new DataSet("MySchool");
//创建表
DataTable dataTable = new DataTable("Student");
//将表添加到 数据库中
dataSet.Tables.Add(dataTable);
//设计列
DataColumn cSid = new DataColumn("sId");
cSid.AllowDBNull = false; //不允许为空
cSid.AutoIncrement = true; //自动增长
cSid.AutoIncrementSeed = 1;//递增首位
cSid.AutoIncrementStep = 1;//每次增加
//将这列加入表中
dataTable.Columns.Add(cSid);
DataColumn cSname = new DataColumn("sName");
cSname.AllowDBNull = false;
cSname.DataType = typeof(string); //设置数据类型
dataTable.Columns.Add(cSname);
//添加数据
DataRow dr = dataTable.NewRow();
dr["sName"] = "刘波";
dataTable.Rows.Add(dr);
DataRow dr1 = dataTable.NewRow();
dr1["sName"] = "张三";
dataTable.Rows.Add(dr1);
DataRow dr2 = dataTable.NewRow();
dr2["sName"] = "小明";
dataTable.Rows.Add(dr2);
//把DataTable 数据给DGV
dataGridView1.DataSource = dataTable;
SqlDataAdapter 介绍及使用
DataSet 和 物理数据库 是两个不同的个体,要将两个数据库保持一直,就需要 DataAdapter 来同步;
- 使用DataApapter 把物理数据库中的 数据表 填充到 DataSet 中的 DataTable 中,
- 我们对内存中的 DataSet 操作时(增,删,改),再使用 DataApadter 同步回数据库中;
使用SqlDataAdapter 将信息读取到DataGridView中
// dataGridView1.DataSource = getCars();
public DataTable getCars()
{
//创建表 注意显示的是表的信息
DataTable datatable = new DataTable();
//数据库连接对象
using (SqlConnection con = new SqlConnection(strCon))
{
string sql = "select * from Car";
SqlCommand com = new SqlCommand(sql,con);
SqlDataAdapter adapter = new SqlDataAdapter(com);
// 将结果集 同步到data中
adapter.Fill(datatable);
}
return datatable;
}