`
piperzero
  • 浏览: 3471888 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

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


分享到:
评论

相关推荐

    C#使用DataSet Datatable更新数据库的三种实现方法

    本文以实例形式讲述了使用DataSet Datatable更新数据库的三种实现方法,包括CommandBuilder 方法、DataAdapter 更新数据源以及使用sql语句更新。分享给大家供大家参考之用。具体方法如下: 一、自动生成命令的条件 ...

    DataSet与DataTable的区别示例介绍

    一般包含多个DataTable,用的时候,dataset[“表名”]得到DataTable DataTable:数据表。 一: SqlDataAdapter da=new SqlDataAdapter(cmd); DataTable dt=new DataTable(); da.Fill(dt); —————– 直接把数据...

    SqlDataAdapter 向一个dataset中添加多个数据表例子

    本事例详细介绍了一个向一个DATASET中添加多个DATATABLE的例子,用户可以根据名称,取出在DATASET中不同的DATATABLE。

    DataTable合并

    DataSet ds = new DataSet(); sda.Fill(ds, "dt1"); sda1.Fill(ds, "dt2"); //DataTable1 DataTable dt1 = ds.Tables["dt1"]; //DataTable2 DataTable dt2 = ds.Tables["dt2"]; //将DataTable2中的行添加到...

    C#中,数据集DataSet使用方法大全

    1、创建DataSet对象:...通常不必刻意去创建ForeignkeyConstraints,因为当在DataSet的两个DataTable对象之间创建关系时会创建一个。 ③、用SqlDataAdapter.Fill模式来检索模式信息 5、编写代码创建DataTable对象

    C#使用SqlDataAdapter对象获取数据的方法

    SqlDataAdapter也可能取得DataSet中的更新,并将它们提交给数据库。 SqlDataAdapter是为处理脱机数据而设计的,调用其Fill方法填充DataSet时甚至不需要与数据库的活动连接。即如果调用Fill方法时,SqlDa

    MysqlDLL,C#操作MYSQL数据库

     Fill(DataTable)//在 DataSet 的指定范围中添加或刷新行,以与使用 DataTable 名称的数据源中的行匹配。 (继承自DbDataAdapter。  Update(DataRow[])//通过为 DataSet 中的指定数组中的每个已插入、已更新或已...

    ADO.NET在开发中的部分使用方法和技巧.pdf

    二、使用 SqlAdapter 生成 DataSet 或 DataTable 三、如何使用 SqlDataReader 来检索多个行 四、使用 SqlDataReader 检索行 五、如何使用 XmlReader 检索多个行 六、使用 XmlReader 检索 XML 数据 七、如何使用存储...

    ADO.NET 2.0技术内幕(高清 中文 带书签 全)

    6.4 DataSet,DataTable,DataColumn,DataRow,UniqueConstraint和ForeignKeyConstraint类参考 6.5 常见问题 第7章 处理关系数据 7.1 关系数据访问概述 7.2 在代码中使用DataRelation对象 7.3 在Microsoft Visual ...

    mysqlhelper

    //若关闭DataReader对象则关联的Connection对象也将关闭 } /// /// 返回一个bool值判断Reader对象是否存在行 /// /// 要执行的SQL命令语句 /// 返回一个bool值判断Reader对象是否存在行 public static bool...

    ADO.NET 数据库连接的相关知识 Connect

    ADO.NET提供了多种对象模型,比较典型的以下有五种 一、SqlConnection对象 二、SqlCommand对象 三、SqlDataAdapter对象 四、DataTable对象 五、DataSet对象

    学生管理系统--C#

    public DataTable SelectDataBase(string tempStrSQL) //检索数据库数据(传字符串直接操作数据库) { this.myConnection = new SqlConnection(connectionString); DataSet tempDataSet = new DataSet(); this...

    DBHelper方便连接数据库 DBHelper

    using System; using System.Collections; using System.Collections... SqlDataAdapter da = new SqlDataAdapter(cmd); da.Fill(ds); connection.Close(); connection.Dispose(); return ds.Tables[0]; } } }

    物料管理系统

    Mysda = new SqlDataAdapter(sql, Dconn.OpenConn()); Myds = new DataSet(); Mysda.Fill(Myds, dt); return Myds; } //绑定ComboBox控件 public void BindComboBox(string sql, string dt, string Par_Name,...

    c++ 学生管理系统

    sa = gcnew SqlDataAdapter(); sa-&gt;SelectCommand = cmd; ds = gcnew DataSet("FirstDS"); dt1 = gcnew DataTable("course"); ds-&gt;Tables-&gt;Add(dt1); sa-&gt;Fill(ds,"course"); ...

    登陆界面和一些小技术

    public static DataTable ds(string que) { //返回一个装载了SQL制定留言的数据表, string connString = System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"].ToString(); ...

    .Net分页控件【AspNetPager】拖入即用!

    SqlDataAdapter da = new SqlDataAdapter(sql, conn); DataSet ds = new DataSet(); da.Fill(ds, Pager1.PageSize * (Pager1.CurrentPageIndex - 1), Pager1.PageSize, "temptbl"); DataTable dt = ds.Tables[...

    Mecado-开源

    为 PHP5 编写的 Mecado 库提供了一种通过 XML 映射访问数据库的简单方法。 它基于 ADO.NET 对象,例如 DataSet、DataTable、DataColumn、DataRow、DataRelation、Constraint、SqlDataAdapter。

    C#编写的图书管理系统源代码

    public DataSet ds = new DataSet(); public SqlDataAdapter da; public int num=0; private DataTable myTable; private DataRow myRow; public static string strUser; public static string ...

    MyDataGridMultiHeaderHelp 多表头帮助类

    SqlDataAdapter sda = new SqlDataAdapter(); sda.SelectCommand = cmd; DataSet ds = new DataSet(); sda.Fill(ds); DataTable dt = ds.Tables[0]; //清除原有的控件 if (dgv != null && dgv.Name != ...

Global site tag (gtag.js) - Google Analytics