SqlDataAdapter;DataSet;DataTable;DataTableCollection
SqlDataAdapter 一个桥梁
用来从数据库获取数据 用来填充到 dataset 或 datatable中
dataset 就要当于一个数据库,也就是说可以包含多个表(datatable);
datatable 就是一个表 也相当于 DataSet的 DataTableCollection ds[0].table 返回的就是datatable 类型就是DataTableCollection
这是他们的关系
说说基本用法
SqlDataAdapter adapter = new SqlDataAdapter(sql, constr);
DataSet ds = new DataSet();
adapter.Fill(ds);
DataTable dt = new DataTable();
adapter.Fill(0, 10, dt);
上面说的是把数据填充到 dataset 或 datatable中
填充之后,一般控件,绑定这个数据源就可以了
dataGridView1.DataSource = ds.Tables[0];
dataGridView1.DataSource = dt;
如果我们不用SqlDataAdapter这个填充数据呢
这个时候就须要我们自己写datatable了
看下面代码
#region 创建一个DataSet
//1.创建一个临时数据库
DataSet ds = new DataSet("School");
//2.创建一个临时表
DataTable dt = new DataTable("Student");
//2.1为dt中增加列
DataColumn dcAutoId = new DataColumn("autoId");
dcAutoId.AutoIncrement = true;
dcAutoId.AutoIncrementSeed = 1;
dcAutoId.AutoIncrementStep = 1;
dt.Columns.Add(dcAutoId);
//又增加一列
dt.Columns.Add("loginId", typeof(string));
dt.Columns[0].Unique = true;
dt.Columns.Add("loginPwd", typeof(string));
for (int i = 0; i < 10; i++)
{
//2.2为DataTable中,增加一些行
//创建DataRow时,我们自己不能new,需要调用DataTable的NewRow()方法来创建
DataRow dr = dt.NewRow();
dr[1] = "zxh" + i.ToString();
dr[2] = "zxh1234567";
dt.Rows.Add(dr);
}
//3.将DataTable加到DataSet中
ds.Tables.Add(dt);
#endregion
#region 循环遍历,输出DataSet中的内容
//遍历DataSet中的每张表
foreach (DataTable dtItem in ds.Tables)
{
Console.WriteLine("================={0}=================", dtItem.TableName);
//循环该表中的每一行
foreach (DataRow drItem in dtItem.Rows)
{
//循环每行中的每一个列
for (int i = 0; i < dtItem.Columns.Count; i++)
{
Console.Write(drItem[i].ToString()+"\t");
}
Console.WriteLine();
}
}
#endregion