SqlDataAdapter 数据库适配器

目录

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;
}
上一篇:C# datatable转list


下一篇:DataTable-Add实现