DataSet和DataTable区别

DataSet和DataTable区别   da.Fill(ds, "alias_1");                            //使用DataAdapter的Fill方法(填充),调用SELECT命令,别名
 dataGridView8.DataSource = ds.Tables[0];

 da.Fill(dt);       //直接填充给dt flex.DataSource = dt;

 ds.Tables[0]==dt
 DateSet是数据在内存中的缓存,是保存数据的数据结构,相当于一个虚拟的数据库,他可以包含多个DateTable 好像winform里面绑定只能绑定dataTable 简单而言,dataset和datatable都是ADO的非连接层,dataset是一个位于内存中表示外部数据的对象,它是一个类型,该类型维护三个内部强类型集合,其中包括了datatablecollection,  dataset的tables属性能够访问包含多个datatable的datatablecollection


        private void button1_Click(object sender, EventArgs e)
        {
            SqlConnection conn = new SqlConnection("server=.;database=CB_WMDDGLXT;uid=sa;pwd=sunlike$3285");
            conn.Open();
            if (conn.State==ConnectionState.Open)
            {
                label1.Text = "数控库已经连接并打开";
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            SqlConnection conn = new SqlConnection("server=.;database=CB_WMDDGLXT;uid=sa;pwd=sunlike$3285");
            conn.Open();
            if (conn.State == ConnectionState.Open)
            {
                label2.Text = "数控库已经连接并打开";
            }

            conn.Close();
            if (conn.State==ConnectionState.Closed)
            {
                label2.Text = "数控打开后又关闭了";
            }
        }

        private void button3_Click(object sender, EventArgs e)
        {
            SqlConnection conn = new SqlConnection("server=.;database=CB_WMDDGLXT;uid=sa;pwd=sunlike$3285");
            conn.Open();
            if (conn.State == ConnectionState.Open)
            {
                label3.Text = "数控库已经连接并打开";
            }

            conn.Dispose();
            label3.Text = "conn.Dispose()";
        }

        private void button4_Click(object sender, EventArgs e)
        {
            SqlConnection conn = new SqlConnection("server=.;database=CB_WMDDGLXT;uid=sa;pwd=sunlike$3285");
            conn.Open();
            if (conn.State == ConnectionState.Open)
            {
                label4.Text = "数控库已经连接并打开";
            }

            SqlCommand cmd = new SqlCommand();
            cmd.Connection = conn;
            cmd.CommandText = "select count(*) from khxjd";
            cmd.CommandType = CommandType.Text;

            int i = Convert.ToInt32(cmd.ExecuteScalar());
            label4.Text = "表中有" + i.ToString() + "条记录!";

        }

        private void button5_Click(object sender, EventArgs e)
        {
            SqlConnection conn = new SqlConnection("server=.;database=CB_WMDDGLXT;uid=sa;pwd=sunlike$3285");
            conn.Open();
            if (conn.State == ConnectionState.Open)
            {
                label5.Text = "数控库已经连接并打开";
            }

            SqlCommand cmd = new SqlCommand();
            cmd.Connection = conn;
            cmd.CommandText = "update khxjd set qty=100+isnull(qty,0)";
            cmd.CommandType = CommandType.Text;

            int i = Convert.ToInt32(cmd.ExecuteNonQuery());
            label5.Text = "更新了表中" + i.ToString() + "条记录!";
        }

        //sqlDataReader,是向前的。
        //针对于一个sqlConnection,创建多个sqlDataReader,要先关闭上一个sqlDataReader,才能使用下一个sqlDataReader.

        private void button6_Click(object sender, EventArgs e)
        {
            SqlConnection conn = new SqlConnection("server=.;database=CB_WMDDGLXT;uid=sa;pwd=sunlike$3285");
            conn.Open();
            if (conn.State == ConnectionState.Open)
            {
                label6.Text = "数控库已经连接并打开";
            }

            SqlCommand cmd = new SqlCommand();
            cmd.Connection = conn;
            cmd.CommandText = "select top 5 khxjdh,itm,nsn,prd_name_eng,prd_name_chs,qty from khxjd";
            cmd.CommandType = CommandType.Text;

            SqlDataReader sdr= cmd.ExecuteReader();
            while (sdr.Read())
            {
                label6.Text = label6.Text   + "," + sdr[1].ToString();
            }

            label6.Text = label6.Text + "。读取完成!";

        }

        private void button7_Click(object sender, EventArgs e)
        {
            SqlConnection conn = new SqlConnection("server=.;database=CB_WMDDGLXT;uid=sa;pwd=sunlike$3285");
            conn.Open();
            if (conn.State == ConnectionState.Open)
            {
                label7.Text = "数控库已经连接并打开";
            }

            SqlCommand cmd = new SqlCommand();
            cmd.Connection = conn;
            cmd.CommandText = "select top 5 khxjdh,itm,nsn,prd_name_eng,prd_name_chs,qty from khxjd";
            cmd.CommandType = CommandType.Text;

            SqlDataReader sdr = cmd.ExecuteReader();
            if (sdr.HasRows)
            {
                label7.Text = "有数据";
            }
            else
            {
                label7.Text = "无数据";
            }

            sdr.Close(); 

        }

        //SqlDataAdapter:DataAdapter对象在DataSet与数据之间起桥梁作用
        private void button8_Click(object sender, EventArgs e)
        {
            SqlConnection conn = new SqlConnection("server=.;database=CB_WMDDGLXT;uid=sa;pwd=sunlike$3285");

            //conn.Open();     //说明一下:使用 SqlDataAdapter时,只要SqlConnection有效就行,不需要 打开!!!

            if (conn.State == ConnectionState.Open)
            {
                label8.Text = "数控库已经连接并打开";
            }
            else
            {
                label8.Text = "数控库还未打开";  //ok
            }

            //SqlCommand cmd = new SqlCommand();
            //cmd.Connection = conn;
            //SqlCommand cmd = new SqlCommand( "select top 5 khxjdh,itm,nsn,prd_name_eng,prd_name_chs,qty from khxjd",conn);
            //SqlDataAdapter da = new SqlDataAdapter();
            //da.SelectCommand = cmd;

            //DataSet ds = new DataSet();
            // da.Fill(ds, "alias_1");                         //使用DataAdapter的Fill方法(填充),调用SELECT命令,别名
            //dataGridView8.DataSource = ds.Tables[0];

            SqlDataAdapter da = new SqlDataAdapter("select top 5 khxjdh,itm,nsn,prd_name_eng,prd_name_chs,qty from khxjd", conn); //创建DataAdapter数据适配器实例

            if (conn.State == ConnectionState.Open)
            {
                label8.Text = label8.Text+ "2.数控库已经连接并打开";
            }
            else
            {
                label8.Text = label8.Text + "2.数控库还未打开";  //ok
            }

            DataSet ds = new DataSet();                        //创建DataSet实例
            da.Fill(ds, "alias_1");                            //使用DataAdapter的Fill方法(填充),调用SELECT命令,别名
            dataGridView8.DataSource = ds.Tables[0];

            //label8.Text = "数控查询完成";

            if (conn.State == ConnectionState.Open)
            {
                label8.Text = label8.Text + "3.数控库已经连接并打开";
            }
            else
            {
                label8.Text = label8.Text + "3.数控库还未打开";  //ok
            }

            //conn.Close();                                      //关闭数据库
        }

// load table from db
string sql = "select * from products";
string conn = GetConnectionString();
System.Data.OleDb.OleDbDataAdapter da = new System.Data.OleDb.OleDbDataAdapter(sql, conn);

DataTable dt = new DataTable();
da.Fill(dt);       //直接填充给dt

// bind to grid
_flex.Cols[0].Width = 20;
_flex.ShowCursor = true;
_flex.DataSource = dt;

// add calculated field
dt.Columns.Add("ValueInStock", typeof(decimal), "UnitPrice * UnitsInStock");
_flex.Cols["ValueInStock"].Format = "c";

// add unbound column
Column col = _flex.Cols.Add();
col.Name = col.Caption = "Unbound";

  

时间: 2024-10-14 12:11:30

DataSet和DataTable区别的相关文章

DataSet、DataTable、DataRow、DataColumn区别及使用实例

DataSet 表示数据在内存中的缓存. 属性 Tables  获取包含在 DataSet 中的表的集合. ds.Tables["sjxx"] DataTable 表示内存中数据的一个表. 公共属性 Columns 获取属于该表的列的集合. DataSet 获取此表所属的 DataSet. DefaultView 获取可能包括筛选视图或游标位置的表的自定义视图. PrimaryKey 获取或设置充当数据表主键的列的数组. Rows 获取属于该表的行的集合. TableName 获取或设

C# DataSet与DataTable的区别和用法

DataSet是数据集,DataTable是数据表,DataSet存储多个DataTable.DataSet和DataTable像是专门存储数据的一个容器,在你查询数据库得到一些结果时可以存在里面. DataSet功能强大有浏览.排序.搜索.过滤.处理分级数据.缓存更改等功能,还可以与XML数据互换.DataSet中可包括多个DataTable,可将多个查询结构存到一个DataSet中,方便操作 ADO.NET开发人员为方便数据处理开发出来的,是数据的集合,为解决DataReader的缺陷设计的

转:DataSet、DataTable、DataRow、DataColumn区别及使用实例

DataSet 表示数据在内存中的缓存. 属性 Tables  获取包含在 DataSet 中的表的集合. ds.Tables["sjxx"] DataTable 表示内存中数据的一个表. 公共属性 Columns 获取属于该表的列的集合. DataSet 获取此表所属的 DataSet. DefaultView 获取可能包括筛选视图或游标位置的表的自定义视图. PrimaryKey 获取或设置充当数据表主键的列的数组. Rows 获取属于该表的行的集合. TableName 获取或设

【ADO.NET基础知识】SqlConnection、command、DataSet 、DataTable、dataAdapter

1.使用Connection连接数据库的步骤: (1).添加命名空间 System.Data.SqlClient(注意:初学者经常会忘记) (2)定义连接字符串.连接SQL Server 数据库时: server=服务器名;database=数据库名;uid=用户名;pwd=密码;例如:要连接本机上的StudentManagement数据库,用户名为sa,密码为111 string connString="server=.;database=StudentManagement;uid=sa;pw

Ado.Net,关于DataSet和DataTable

DataSet和DataTable的 区别与联系 1.简要说明二者关系 在我们编写代码的时候从数据库里取出数据,填充到dataset里,再根据表的名字,实例化到 DataTable 中. ●注意如下 Ado.Net 关系: Connection_____Command____DataAdapter____Dataset  _____Datareader ● DataSet 是放在内存中的,对DataSet中数据的修改并不直接反应到数据库,要通过 DataAdapter 的 Update 方法更新

浅谈ADO.NET中的对象——Connection、Command、DataReader、DataAdapter、DataSet、DataTable

可能是当初没有好好总结的缘故,学习.NET以来,对ADO.NET中的对象一直有些模糊,今天重新回顾了一下,通过查资料,总结,结合自己的观点整理一下ADO.NET中Connection.Command.DataReader.DataAdapter. DataSet.DataTable这几个对象的相关知识,希望对初学者能起到一个全局把控的作用,希望大牛能留下宝贵的指导意见. 以下的例子仅以连接 SQL Server数据库为例,所以分别以SqlConnection.SqlCommand.SqlData

关于PagedDataSource分页属性与DataSet和DataTable详解

Asp.net提供了三个功能强大的列表控件:DataGrid.DataList和Repeater控件,但其中只有DataGrid控件提供分页功能.相对DataGrid,DataList和Repeater控件具有更高的样式自定义性,所以很多时候我们喜欢使用DataList或Repeater控件来显示数据. PagedDataSource 类封装 DataGrid 控件的属性,这些属性使 DataGrid 可以执行分页.PagedDataSource 类的部分公共属性: AllowCustomPag

DataSet与DataTable对象

DataSet与DataTable对象 摘自:http://www.cnblogs.com/fttbfttb/articles/1509662.html DataSet对象 DataSet是ADO.NET中最核心的成员之一,是各种基于.NET平台程序语言(如VB.NET.C#.NET.C++.NET)的数据库应用程序开发最常接触的类,这是因为DataSet在ADO.NET实现从数据库中抽取数据的作用.数据抽取后,DataSet就是数据的存放地,它是各种数据源(SQL Server .OLE DB

使用 AutoMapper 映射 IDataReader、DataSet、DataTable 到实体类

AutoMapper是一个.NET的对象映射工具. 项目地址:https://github.com/AutoMapper/AutoMapper. 帮助文档:https://github.com/AutoMapper/AutoMapper/wiki 主要用途 领域对象与DTO之间的转换.数据库查询结果映射至实体对象. 这里主要说下使用 AutoMapper 将 IDataReader.DataSet.DataTable 转为实体的方法. 依赖文件:AutoMapper.dll.AutoMapper