DataTable和DataSet可以看做是数据容器,比如你查询数据库后得到一些结果,可以放到这种容器里,那你可能要问:我不用这种容器,自己读到变量或数组里也一样可以存起来啊,为什么用容器?
原因是,这种容器的功能比较强大,除了可以存数据,还可以有更大用途。举例:在一个c/s结构的桌面数据库系统里,你可以把前面存放查询结果的容器里的数据显示到你客户端界面上,用户在界面上对数据进行添加、删除、修改,你可以把用户的操作更新到容器,等用户操作完毕了,要求更新,然后你才把容器整个的数据变化更新到中心数据库,这样做的好处是什么?就是减少了数据库操作,客户端速度提高了,数据库压力减小了。
DataSet可以比作一个内存中的数据库,DataTable是一个内存中的数据表,DataSet里可以存储多个DataTable

DataTable,DataRow与DataView对象的增删改查

//创建和声明DataTable对象 DataTable  total=new DataTable();
//给DataTable对象添加DataColumn对象 total.Columns.Add(new DataColumn("班组",typeof(string))); total.Columns.Add(new DataColumn("姓名",typeof(string))); total.Columns.Add(new DataColumn("学科",typeof(string))); total.Columns.Add(new DataColumn("成绩",typeof(int)));
法一://声明DataRow对象 DataRow dr=total.NewRow();
//给DataRow对象中的各列赋值 dr["班组"]= "一班"; dr["姓名"]= " 李宏"; dr["学科"]= "语文 "; dr["成绩"]=98;
//将DataRow对象添加到DataTable对象中 total.Rows.Add(dr);
dr=total.NewRow(); dr["班组"]= "一班"; dr["姓名"]= " 刘京生"; dr["学科"]= "语文 "; dr["成绩"]=96; total.Rows.Add(dr);
//创建DataView对象,DataView对象的数据从DataTable对象中获得 DataView dv=new DataView(total);
//循环取出DataView中的值在页面上输出 foreach(DataRowView drv in dv) {   for(int i=0;i<drv.Row.Table.Columns.Count;i++)   {     Response.Write(drv[i]+"<br>");   } }
 法二:DataRow dr=total.NewRow();
第0列是自增ID字段,因此从1开始
dr[1]="二班"; dr[2]="李宏"; dr[3]="语文";
==================================
 
 
//创建DataView对象,DataView对象的数据从DataTable对象中获得 DataView dv=new DataView(total);

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
一、将DataRowView对象添加进DataView对象中 DataRowView drv=dv.AddNew(); drv["班组"]= "一班"; drv[“姓名”]= “ 赵刚"; drv["学科"]= "语文 "; drv[“成绩”]=99;
//结束编辑可以调用DataRowView的CancelEdit()方法取消插入 Drv.EndEdit();
二、修改现有的DataRowView对象 //开始编辑
dv[2].BeginEdit();
//修改列值 dv[2][“成绩”]=98;
//对束编辑可以调用DataRowView的CancelEdit()方法取消修改 dv[2].EndEdit(); 利用DataRowView的IsNew和IsEdit属性来检测DataRowView是否为新行或是否被编辑过。 三、删除现有的DataRowView对象 //调用DataView的Delete()方法,传入要删除的DataRowView的索引值 dv.Delete(1);
//调用DataRowView的Delete()方法删除
dv[1].Delete();
//调用DataTable的AcceptChanges()方法永久删除基础DataRow。 dt.AcceptChanges(); 要取消删除,可以调用DataTable的RejectChanges()方法取消删除,从而取消未提交的增加与修改

==========================================

DataTable,DataSet,DataRow与DataView的更多相关文章

  1. ADO.NET DataSet、DataTable、DataRow、DataView的学习

    对于一个datatable中的数据进行嵌套查询判断某几列数据是否相同从而确定这条数据是否一样,并确定他重复的次数COUNT1字段. 例如: DataTable dt = new DataTable() ...

  2. C#DataTable DataSet DataRow区别详解

    DataSet 是C#中用来存储数据库数据的.其实,它的作用是在内存中模拟数据库.我们现实生活中的数据库从大到小的基本结构类似于:数据库实例,表,列,行.在C#语言中,我们在内存中也模拟出了一个这样的 ...

  3. DataSet、DataTable、DataRow 复制

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

  4. Newtonsoft.Json高级用法DataContractJsonSerializer,JavaScriptSerializer 和 Json.NET即Newtonsoft.Json datatable,dataset,modle,序列化

    原文地址:https://www.cnblogs.com/yanweidie/p/4605212.html Newtonsoft.Json介绍 在做开发的时候,很多数据交换都是以json格式传输的.而 ...

  5. Newtonsoft.Json高级用法,json序列号,model反序列化,支持序列化和反序列化DataTable,DataSet,Entity Framework和Entity,字符串

    原文地址:https://www.cnblogs.com/yanweidie/p/4605212.html 手机端应用讲究速度快,体验好.刚好手头上的一个项目服务端接口有性能问题,需要进行优化.在接口 ...

  6. DateTable与List<T>相互转换 及JSON与DataTable(DataSet)相互转化

    http://www.360doc.com/content/13/0712/09/10504424_299336674.shtml Linq处理List数据 http://blog.163.com/l ...

  7. 【转】给DataTable和DataRow扩展方法,直接转换为对象集合或对象

    /// <summary> /// 类 说 明:给DataTable和DataRow扩展方法,直接转换为对象集合或对象 /// 补充说明:此扩展类可以极大的简化操作,但是性能低下,大数据以 ...

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

    1.简要说明二者关系 DataRow 和 DataColumn 对象是 DataTable 的主要组件.使用 DataRow 对象及其属性和方法检索.评估.插入.删除和更新 DataTable 中的值 ...

  9. DataTable和DataRow利用反射直接转换为Model对象的扩展方法类

    DataTable和DataRow利用反射直接转换为Model对象的扩展方法类   /// <summary> /// 类 说 明:给DataTable和DataRow扩展方法,直接转换为 ...

随机推荐

  1. HTTP POST发消息

    业务需求:模拟TANX给DSP发消息,protobuf数据已弄好. 代码: def PostDataToDSP(self,url,postdata): headers = { #taobao文档规定 ...

  2. asp.net C#母版页和内容页事件排版载入顺序生命周期

    asp.net C#母版页和内容页事件排版载入顺序生命周期 关于ASP页面Page_Load发生在事件之前而导致的问题已经喜闻乐见,对于问题的解释也非常全面.可是怎样解决这个问题则较少有人说明,我就再 ...

  3. hadoop备记

    Hadoop 的优势 Hadoop 是 一 个 能 够 让 用 户 轻 松 架 构 和 使 用 的 分 布 式 计 算 平 台. 用 户 可 以 轻 松 地 在Hadoop 上开发执行处理海量数据的应 ...

  4. solr 搜索引擎

    http://www.cnblogs.com/wenxinghaha/p/4088790.html

  5. MySQL——索引与优化

    http://www.cnblogs.com/hustcat/archive/2009/10/28/1591648.html 写在前面:索引对查询的速度有着至关重要的影响,理解索引也是进行数据库性能调 ...

  6. HBase中的备份和故障恢复方法

    本文将对Apache HBase可用的数据备份机制和大量数据的故障恢复/容灾机制做简要介绍. 随着HBase在重要的商业系统中应用的大量添加,很多企业须要通过对它们的HBase集群建立健壮的备份和故障 ...

  7. Android(java)学习笔记150:为什么局部内部类只能访问外部类中的 final型的常量

    为什么匿名内部类参数必须为final类型: 1)  从程序设计语言的理论上:局部内部类(即:定义在方法中的内部类),由于本身就是在方法内部(可出现在形式参数定义处或者方法体处),因而访问方法中的局部变 ...

  8. mvn export runnable jar

    mvn dependency:copy-dependencies <build> <plugins> <plugin> <groupId>org.apa ...

  9. redhat系统安装部署

    linux 系统安装部署 1).光盘引导,选择第一项: 2)介质检查,选择skip: 3).欢迎界面,直接下一步: 4).选择安装过程使用的语言,选择“English”; 5).选择键盘布局,不需要修 ...

  10. 第二种方式读取并显示HDFS中的内容

    1.讀取HDFS内容的java客戶端代碼: package Hdfs; import java.io.InputStream; import java.net.URI; import org.apac ...