SqlDataAdapter;DataSet;DataTable;DataTableCollection 关联

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


 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值