DataSet和DataTable的 区别与联系

1、简要说明二者关系

在我们编写代码的时候从数据库里取出数据,填充到dataset里,再根据表的名字,实例化到 DataTable 中。

●注意如下 Ado.Net 关系:

Connection_____Command____DataAdapter____Dataset  _____Datareader

● DataSet 是放在内存中的,对DataSet中数据的修改并不直接反应到数据库,要通过 DataAdapter 的 Update 方法更新回数据库

● DataSet相当你用的数据库; DataTable相当于你的表。一个 DataSet 可以包含多个 DataTable

DataSet 由表、关系和约束的集合组成。在 ADO.NET 中,DataTable对象用于表示 DataSet 中的表。DataTable 表示一个内存内关系数据的表;

DataTable和DataRow的 区别与联系

1、简要说明二者关系(foreach (DataRow dr in dt_sn.Rows))

DataRow 和 DataColumn 对象是 DataTable 的主要组件。使用 DataRow 对象及其属性和方法检索、评估、插入、删除和更新 DataTable 中的值。DataRowCollection 表示 DataTable 中的实际 DataRow 对象,DataColumnCollection 中包含用于描述DataTable 的架构的 DataColumn 对象。使用重载的 Item 属性返回或设置 DataColumn 的值。

使用 HasVersion 和 IsNull 属性确定特定行值的状态,使用 RowState 属性确定行相对于它的父级 DataTable 的状态。

namespace ProjectWeb
{
public partial class DataSetTable : System.Web.UI.Page
{
//创建字典,好处就是使用ContainsKey功能
private Dictionary<string, string> dicObject = new Dictionary<string, string>(); protected void Page_Load(object sender, EventArgs e)
{
//把DataTable数据添加到Dictionary字典
DataTable dt_sn = GetData().Tables[0];
this.dicObject.Clear();
foreach (DataRow dr in dt_sn.Rows)
this.dicObject.Add(dr["id"].ToString(), dr["name"].ToString()); //Dictionary字典的数据添加到页面DropDownList1
this.DropDownList1.Items.Clear();
this.DropDownList1.Items.Add(new ListItem("第一张表"," "));
foreach (KeyValuePair<string, string> kv in dicObject)
this.DropDownList1.Items.Add(new ListItem(kv.Value, kv.Key)); //第二张表数据
DataTable dt_te = GetData().Tables[1];
this.DropDownList2.Items.Clear();
this.DropDownList2.Items.Add(new ListItem("第二张表", " "));
foreach (DataRow dr in dt_te.Rows)
this.DropDownList2.Items.Add(new ListItem(dr["name"].ToString(), dr["id"].ToString()));
}
#region 返回数据集
private DataSet GetData()
{
//创建第一张表
DataTable dt_sn = new DataTable();
//添加列
dt_sn.Columns.Add("id");
dt_sn.Columns.Add("name");
//添加行
DataRow dr_sn = dt_sn.NewRow();
dr_sn["id"] = "1";
dr_sn["name"] = "杨秀徐";
dt_sn.Rows.Add(dr_sn);
//表名称
dt_sn.TableName = "SN"; //创建第二张表
DataTable dt_te = new DataTable();
//添加列
dt_te.Columns.Add("id");
dt_te.Columns.Add("name");
//添加行
DataRow dr_te = dt_te.NewRow();
dr_te["id"] = "2";
dr_te["name"] = "杨四节";
dt_te.Rows.Add(dr_te);
//表名称
dt_te.TableName = "Te"; DataSet ds = new DataSet();
//把表DataTable添加到数据集DataSet
ds.Tables.Add(dt_sn);
ds.Tables.Add(dt_te); return ds;
}
#endregion
}
}

点击下载实例

Ado.Net,关于DataSet和DataTable的更多相关文章

  1. ADO.NET中DataSet、DataTable、DataRow的数据复制方法

    DataSet 对象是支持 ADO.NET的断开式.分布式数据方案的核心对象 ,用途非常广泛.我们很多时候需要使用其中的数据,比如取得一个DataTable的数据或者复制另一个DataTabe中的数据 ...

  2. ADO.NET基础02(语句参数化,配置文件,DataSet与DataTable)

    ADO.NET连接池 ado.net默认启用了连接池 *如何清空连接池?Connection的静态方法ClearAllPools(). ClearPool() Ado.net连接池使用总结: 1.第一 ...

  3. Winform开发之ADO.NET对象Connection、Command、DataReader、DataAdapter、DataSet和DataTable简介

    ADO.NET技术主要包括Connection.Command.DataReader.DataAdapter.DataSet和DataTable等6个对象,下面对这6个对象进行简单的介绍:(1)Con ...

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

    1.使用Connection连接数据库的步骤: (1).添加命名空间 System.Data.SqlClient(注意:初学者经常会忘记) (2)定义连接字符串.连接SQL Server 数据库时: ...

  5. DataSet与DataTable对象

    DataSet与DataTable对象 摘自:http://www.cnblogs.com/fttbfttb/articles/1509662.html DataSet对象 DataSet是ADO.N ...

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

    Asp.net提供了三个功能强大的列表控件:DataGrid.DataList和Repeater控件,但其中只有DataGrid控件提供分页功能.相对DataGrid,DataList和Repeate ...

  7. DataSet、DataTable、DataRow 复制

    DataSet.DataTable.DataRow 复制 DataSet 对象是支持 ADO.NET的断开式.分布式数据方案的核心对象 ,用途非常广泛.我们很多时候需要使用其中的数据,比如取得一个Da ...

  8. .Net 中DataSet和DataTable的 区别与联系

    1.简要说明二者关系 在我们编写代码的时候从数据库里取出数据,填充到dataset里,再根据表的名字,实例化到 datatable 中.其实使用 dataset 相当于所使用数据库中数据的副本,保存在 ...

  9. DataSet、DataTable、DataRow的数据复制方法

    DataSet 对象是支持 ADO.NET的断开式.分布式数据方案的核心对象 ,用途非常广泛.我们很多时候需要使用其中的数据,比如取得一个DataTable的数据或者复制另一个DataTabe中的数据 ...

随机推荐

  1. java根据模板文件导出pdf

    原文:https://www.cnblogs.com/wangpeng00700/p/8418594.html 在网上看了一些Java生成pdf文件的,写的有点乱,有的不支持写入中文字体,有的不支持模 ...

  2. firedac连接linux的oracle

    firedac连接linux的oracle 首先要下载并安装 oci for linux.OCI的版本要和ORACLE数据库的版本一致. centos7环境下安装OCI:https://blog.cs ...

  3. Windows/Linux下引用jar包,并用javac/java编译运行

    Windows/Linux下引用jar包,并用javac/java编译运行,有需要的朋友可以参考下. 1> Windows 假设要引用的jar放在D:/test目录下,名字为t1.jar, ja ...

  4. ios nil、NULL和NSNull 的使用

    nil用来给对象赋值(Objective-C中的任何对象都属于id类型),NULL则给任何指针赋值,NULL和nil不能互换,nil用于类指针赋值(在Objective-C中类是一个对象,是类的met ...

  5. go1.8之安装配置具体步骤

    操作系统: CentOS 6.9_x64 go语言版本: 1.8.3 安装go 这里直接安装二进制,其它方式请自行搜索. 1.下载并安装go 命令如下: ? 1 2 3 wget https://st ...

  6. <A>标签锚标记

    链接到本页面 – 锚记标签用于使用户“跳”到文档的某个部分 – HTML 的NAME 属性用于创建锚标记 <A NAME = “marker”>主题名称</A> – 为达到这种 ...

  7. [Web 前端] React Router v4 入坑指南

    cp from : https://www.jianshu.com/p/6a45e2dfc9d9 万恶的根源 距离React Router v4 正式发布也已经过去三个月了,这周把一个React的架子 ...

  8. JavaScript 中的异常处理

    考虑到 JS 中的错误可比服务器端的代码产生的错误要多得多,并且还难以发现及修正,所以 JS 代码必须有异常处理以及全局一场处理. try { //这段代码从上往下运行,其中任何一个语句抛出异常该代码 ...

  9. FreeMarker:Java模板引擎

    本资源由 伯乐在线 - 黄余粮 整理 FreeMarker 是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写.FreeMarker被设计用来生成HTML Web页面,特别是基于M ...

  10. 10分钟理解Android数据库的创建与使用(附具体解释和演示样例代码)

    1.Android数据库简单介绍. Android系统的framework层集成了Sqlite3数据库.我们知道Sqlite3是一种轻量级的高效存储的数据库. Sqlite数据库具有以下长处: (1) ...