ado.net提供的数据库操作,在这些操作中 数据库连接对象(SqlConnection),和数据命令对象(Sqlcommand)是必须使用的;
但有两种操作的方式;
SqlDateReader 由于是直接访问数据库,所以效率高;但使用起来不方便
SqlDateAdapter 可以把数据库的数据缓存在 内存当中,以数据集的方式进行填充。
DataSet 是C#中用来存储数据库数据的,作用是在内存中模拟数据库,
手动使用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;
DataSet 和 物理数据库 是两个不同的个体,要将两个数据库保持一直,就需要 DataAdapter 来同步;
// 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; }