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. oncopy和onpaste

    在Javascript中,有对应的事件能够监听复制和粘贴,那就是oncopy和onpaste. oncopy: demo: <body oncopy="alert('不能复制');re ...

  2. iOS类初始化

    类继承下来的初始化有三种: +(void)load: +(void)initialize: -(instancetype)init:   +(void)load:会自动调用(也可手动调用),只要有引用 ...

  3. iOS 并行编程:GCD Dispatch Queues

    1 简介 1.1 功能          Grand Central Dispatch(GCD)技术让任务并行排队执行,根据可用的处理资源,安排他们在任何可用的处理器核心上执行任务.任务可以是一个函数 ...

  4. 亿能测试白盒安全测试模板V1.0发布

    亿能测试白盒安全测试模板V1.0发布http://automationqa.com/forum.php?mod=viewthread&tid=2911&fromuid=21

  5. Redis操作Hash工具类封装,Redis工具类封装

    Redis操作Hash工具类封装,Redis工具类封装 >>>>>>>>>>>>>>>>>> ...

  6. java中substring和indexof() 和lastindexof()

    java中substring和indexof() 和lastindexof() str=str.substring(int beginIndex);截取掉str从首字母起长度为beginIndex的字 ...

  7. css怎么写链接到图片和地址

  8. C#微信公众号开发 -- (六)自定义菜单事件之CLICK

    微信公众号中当用户手动点击了按钮,微信公众号会被动的向用户发送文字消息或者图文消息. 通过C#微信公众号开发 -- (五)自定义菜单创建 我们知道了如何将CLICK类型的按钮添加到自己的微信公众平台上 ...

  9. jasper3

    package jasper; import java.io.ByteArrayInputStream;import java.io.File;import java.io.FileOutputStr ...

  10. 向SQL2008R2导入Acess、excel数据

    一:导入Access数据 1.在sql2008查询分析 器中输入如下查询语句能查出access中的数据 SELECT * FROM OpenDataSource( 'Microsoft.Jet.OLE ...