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. xcode针对不同IOS版本的代码编译问题

    有时候在项目中为了兼容低版本IOS系统,通常会针对不同的OS版本写不同的代码,例如: #define IS_IOS7_OR_LATER ([[UIDevice currentDevice].syste ...

  2. GOOGLE------Reilly_Open_Source_Award

    https://en.wikipedia.org/wiki/O%27Reilly_Open_Source_Award#2016

  3. 【转】GitHub平台最火Android开源项目整理——2013-08-25 17

    http://game.dapps.net/news/developer/9199.html GitHub在中国的火爆程度无需多言,越来越多的开源项目迁移到GitHub平台上.更何况,基于不要重复造轮 ...

  4. schedule() 和 scheduleAtFixedRate() 的区别--转载

    1.  schedule() ,2个参数方法:在执行任务时,如果指定的计划执行时间scheduledExecutionTime <= systemCurrentTime,则task会被立即执行. ...

  5. 写个 Hello World 而已,要不要这么震撼?!

    Atom 编辑器的一个插件,可以让你写代码的时候体验狂拽酷炫的效果! 如果来点音乐.再配上机械键盘的话,写代码是不是爽到爆呢? 这货全名叫: activate-power-mode atom pack ...

  6. 关于NSRunLoop和NSTimer的深入理解

    一.什么是NSRunLoop NSRunLoop是消息机制的处理模式 NSRunLoop的作用在于有事情做的时候使的当前NSRunLoop的线程工作,没有事情做让当前NSRunLoop的线程休眠 NS ...

  7. Android5.0之CardView的使用

    CardView也是一个非常炫酷的控件,一般我们将CardView配合RecyclerView来使用,当然,CardView也可以配合ListView来使用,都是可以的.OK,我们先来看一张CardV ...

  8. Java 计算文件大小

    long available = (long)getAttachmentContent(att.getId()).available();   public static String bytesTr ...

  9. php插件机制实现原理

    插件,亦即Plug-in,是指一类特定的功能模块(通常由第三方开发者实现) 它的特点: 1. 随时安装.卸载.激活.禁用 2. 无论什么状态都不影响系统核心模块的运行, 3. 是一种非侵入式的模块化设 ...

  10. javascript-01

    1.JavaScript:浏览器脚本语言 2.JavaScript的作用  |-1.进行前端验证  |-2.实现页面的动态效果 3.JavaScript的特点  |-1.和java没有任何关系,官方标 ...