浅谈DataSet 的用法

python学习笔记之链表推导式 使用链式推导式可以高效的进行数据处理,具体示例如下。 在找出文本中最长词汇程序中,第一种方法如下: """找出文本中最长的词""" text = nltk.corpus.gutenberg.words('milton-paradise.txt')#生成整个文本词汇链表 longest = '' for word in text: if len(word) > len(longest): longest = word longest 第二种方法使用链表推导式 text 阅读详情

   DataSet是ADO.NET开发人员为方便数据处理开发出来的,是数据的集合,是为解决DataReader的缺陷设计的,DataReader数据处理速度快,但它是只读的, 而且一旦移到下一行,就不能查看上一行的数据,DataSet则可以自由移动指针。DataSet的数据是与数据库断开的。DataSet还可用于多层应用程序中,如果应用程序运行在中间层的业务对象中来访问数据库,则业务对象需将脱机数据结构传递给客户应用程序。

  DataSet的功能:浏览、排序、搜索、过滤、处理分级数据、缓存更改等。还可以与XML数据互换。DataSet中可包括多个DataTable,可将多个查询结构存到一个DataSet中,方便操作,而DataTable中又包括多个DataRow、DataColumn,可通过这些DataRow、DataColumn来查看、操作其中的数据,而需将操作结果返回给数据库的话,则可以调用DataAdapter的Update方法。

  DataSet的操作:

DataSet ds=new DataSet();
DataTable dt
=new DataTable("newTable");
ds.Tables.Add(dt);
DataSet ds=new DataSet();
DataTable dt
=ds.Tables.Add("newTable");

上述两种方法都可以在DataSet中添加一个DataTable,看需要而进行选择。添加DataTable后,需向其中添加行和列。

DataSet ds=new DataSet();
DataTable dt
=ds.Tables.Add("newTables");
DataColumn col
=dt.Columns.Add("newColumn",typeof(int));
col.AllowDBNull
=false;
col.MaxLength
=4;
col.Unique
=true;

上述代码向DataSet中的DataTable中添加名为”newColumn”,类型为int且不为空,最大长度为4和唯一性为真的列。

dt.PrimaryKey=new DataColumn[]{dt.Columns["ID"]}

这段代码是继续上面代码的,为一个DataTable中添加一个主键列,主键列是一个数据组,如有多个主键,只需在数组中添加一个列即可。如下:

dt.PrimaryKey=new DataColumns[]{dt.Columns["OrderID"],dt.Columns["ProductID"]}

添加外键:

ForeignKeyConstraint fk;
fk
=new ForeignKeyConstraint(ds.Tables["Customers"].Columns["CustomerID"],ds.Tables["Orders"].Columns["CustomerID"]);
ds.Tables[
"Orders"].Constraints.Add(fk);
//上述代码假如已经为Cusomers表和Orders创建了主键,此句为添加外键约束。

上述是根据Customers表和Orders表的CustomerID来创建约束。

下面介绍修改DataRow中的内容:

DataRow dr=ds.Tables["Customer"].Rows.Find("ANTON");
if(dr==null)

else
{
dr.BeginEdit(); 
dr[
"CompanyName"]="newValue";
dr[
"ContactName"]="newValue2";
dr.EndEdit();
}

//上面代码通过Row集合的Find方法来在DataTable中的行进行定位,找到"ANTON"行,再修改"ANTON"行中CompanyName列和ContactName列的值。通过BeginEdit和EndEdit来缓存对行的修改,还可调用 CancelEdit为取消修改。

判断某列是否为空值:

DataRow dr=ds.Tables["Customers"].Rows.Find("aaa");
if(dr.IsNull("ContactName");
 ..
else
 dr[
"ContactName"]=DBNull.Value
//这里判断ContactName列是否为空,如果不是则为其赋空值,呵,很无厘头的做法,这里只为演示为列赋空值的做法。

DataRow dr=ds.Tables["Customers"].Rows.Find("aaa");
if(dr.IsNull("ContactName");
 ..
else
 dr[
"ContactName"]=DBNull.Value
//这里判断ContactName列是否为空,如果不是则为其赋空值,呵,很无厘头的做法,这里只为演示为列赋空值的做法。

删除DataRow:

有两种方法可以删除DataRow,Delete方法和Remove方法和RemoveAt方法。其区别是Delete方法实际上不是从DataTable中删除掉一行,而是将其标志为删除,仅仅是做个记号,而Remove方法则是真正的从DataRow中删除一行,RemoveAt方法是根本行的索引来删除。列:

DataRow dr=ds.Tables["table"].Rows.Find("a");
ds.Tables[
"table"].Remove(dr);
或
ds.Tables[
"table"].Remove(index);
//dr 为"a"所在的行,查出后将其删除,index为 "a"所在的索引号。
关于DataSet中的其用法,参照MSDN
Spark Dataset 的一些 api 操作 【代码】Dataset 的一些 Java api 操作。 阅读详情

相关推荐

Spark Dataset<Row>写入Elasticsearch实战

1、前言 Spark操作数据写入es,可以参考官方案例来操作 Apache Spark support | Elasticsearch for Apache Hadoop [7.14] | Elastic 本博客,讲挑选其中的一种方法进行讲解。 2、方法 JavaEsSpark类中,提供了四大类方法把数据写入到es中。 def saveToEs(jrdd: JavaRDD[_], resource: String) = EsSpark.saveToEs(jrdd.rdd, resource

一个数据小开发的博客 1415

Dataset<Row>序列化并进行存储

dataframe保存方法之多列表Array[float]

NLP与推荐算法 2035

最全面的DataSet用法详细

DataSet是ADO.NET开发人员为方便数据处理开发出来的,是数据的集合。DataSet的功能:浏览、排序、搜索、过滤、处理分级数据、缓存更改等。还可以与XML数据互换。DataSet中可包括多个DataTable,可将多个查询结构存到一个DataSet中,方便操作.....

初学spark基本操作SparkSession、Dataset<Row>

RDD的具体描述RDD(弹性分布式数据集)是Spark提供的最重要的抽象的概念,它是一种有容错机制的特殊集合,可以分布在集群的节点上,以函数式编操作集合的方式,进行各种并行操作。可以将RDD理解为一个具有容错机制的特殊集合,它提供了一种只读、只能有已存在的RDD变换而来的共享内存,然后将所有数据都加载到内存中,方便进行多次重用。a.他是分布式的,可以分布在多台机器上,进行计算。 b.他是弹性的,计...

fearlessnesszhang的博客 1万+

计算机图形学入门30:动画与模拟介绍

计算机图形学入门,动画与模拟,物理模拟,质点弹簧系统,运动学,粒子系统,动作捕捉。

YanisWu的博客 1485

ARM的CI-700和Arteris的NoC对比

设计理念:CI-700注重于为移动和客户端SoC提供定制化的互连解决方案,而Arteris的NoC更侧重于提供灵活、可配置的网络互连技术,适用于多种应用场景。性能与功耗:CI-700通过系统级缓存和网状拓扑结构优化性能和功耗,而Arteris的NoC通过物理感知和多协议支持来提升性能和降低功耗。功能安全:Arteris的NoC提供了功能安全支持,这对于汽车和工业应用尤为重要,而CI-700虽然也关注安全性,但未明确提及功能安全支持。互操作性。

ygyglg的专栏 2622

python链表_python中的链表推导式

num=[1,2,3]myvec=[[x,x*2] for x in num] #嵌套一个链表,格式为一个数和他的平方print myvec生成链表很简单的一种办法就是链表推导式,不仅容易看懂,还很好用:链表表达式在for语句前面,for后面就是对参数的限定。[XXX for yyy](必须要有方括号表示是链表),XXX表示链表,yyy限定XXX中参数。例子:num=[1,2,3,4,5]myve...

weixin_39669701的博客 137

使用MKL+Eigen求解稀疏矩阵方程组

问题:求解Ax=b的解,其中,A为大型稀疏矩阵,长和宽分别为1500^2。 一般思路: (1)A为对称正定矩阵,对A使用cholesky分解。 (2)A为对称不定矩阵,使用LDL‘分解,即: PAP'=LDL' 其中,L为单位下三角矩阵,D由阶数为1或者2的对角块构成,P是置换矩阵。 (3)不对称矩阵:LU分解。 (4)长方形矩阵(长...

薛晓伟 3445

python链表推导式

##链表推导式 链表推导式提供了一个创建链表的简单途径,无需使用 map(), filter() 以及 lambda。返回链表的定义通常要比创建这些链表更清晰。每一个链表推导式包括在一个for语句之后的表达式,零或多个for或if语句。返回值是由for或if子句之后的表达式得到的元素组成的链表。如果想要得到一个元组,必须要加上括号。 &gt;&gt;&gt; freshfruit = [' ban...

qq_38507163的博客 271

PackML工业标准解析:统一机器状态管理与数据交换的实践指南

在工业自动化与智能制造领域,实现设备间的互联互通与高效协同是核心挑战。这背后依赖于一套标准化的机器行为与数据交换规范,其原理在于通过定义统一的状态模型与接口协议,消除不同厂商设备间的“语言”隔阂。这项技术的核心价值在于大幅降低系统集成复杂度、提升运维效率与生产透明度,是构建数字化工厂的基石。其典型应用场景包括包装机械、离散制造产线等需要多设备协同的领域。本文聚焦的PackML(包装机械语言)标准,正是这一理念的杰出实践,它通过一套严谨的**状态机模型**和**数据标签(PackTags)** 体系,为机器提

weixin_30070339的博客 401

电子凸轮追剪算法深度解析:2500字图解+代码实战

工艺需求:在物料连续运动过程中完成精准切割核心矛盾:切割瞬间刀具与物料必须绝对同步传统方案:机械凸轮(结构复杂,调整困难)现代方案:电子凸轮(柔性可调,精度更高)

QQ_778132974的博客 1111

python 链表推导式_python中的链表推导式

Python代码 num=[1,2,3]myvec=[[x,x*2] for x in num] #嵌套一个链表,格式为一个数和他的平方print myvec生成链表很简单的一种办法就是链表推导式,不仅容易看懂,还很好用:链表表达式在for语句前面,for后面就是对参数的限定。[XXX for yyy](必须要有方括号表示是链表),XXX表示链表,yyy限定XXX中参数。例子:Python代码 ...

weixin_39874196的博客 220

OpenOCD入门到精通:第28章 综合实战:RISC-V 调试

RISC-V调试实战摘要 本文介绍了RISC-V调试规范及其在OpenOCD中的实现。主要内容包括: RISC-V Debug规范的两个版本(0.11和0.13)及其差异,OpenOCD通过自动检测DTMCS寄存器版本号选择对应驱动实现。 RISC-V调试架构的分层设计,包含DTM、Debug Module、Program Buffer等核心组件,以及三种内存访问方式(progbuf、sysbus、abstract)。 以GD32VF103为例的实战调试配置,包括硬件连接、OpenOCD配置文件编写和GDB

从事嵌入式linux android驱动开发,拥有全栈能力 282

Python学习之链表推导式x for xx in yy

Python学习之链表推导式x for xx in yy 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录Python学习之链表推导式x for xx in yy一、x for xx in yy是什么?二、使用实例输出结果 一、x for xx in yy是什么? 形如 xx for xx in yy 的形式就是链表推导式 二、使用实例 代码如下

jinhuo_2007的博客 1431

【置顶】ARMv8/ARMv9架构入门到精通-[目录]

周贺贺,baron,代码改变世界,coding_the_world,Arm精选,arm_2023,安全启动,加密启动 optee、ATF、TF-A、Trustzone、optee3.14、MMU、VMSA、cache、TLB、arm、armv8、armv9、TEE、安全、内存管理、页表,Non-cacheable,Cacheable, non-shareable,inner-shareable,outer-shareable, optee、ATF、TF-A、Trustzone、optee3.14、MMU、V

baron-周贺贺-代码改变世界ctw 2万+

你知道几种数字地与模拟地连接方式及优缺点?

频率选择性:磁珠的阻抗特性随频率变化,只对某个频点的噪声有显著抑制作用,对于频率不确定或无法预知的情况,可能不是最佳选择。在实际应用中,选择合适的连接方式需要根据具体的电路频率、信号类型、设计要求等因素综合考虑,以达到最佳的电磁兼容效果.高频信号干扰:在高频电路中,单点接地可能导致信号回流路径过长,增加地线电感,从而引入高频噪声。限制噪声电流:0欧姆电阻相当于一个非常窄的电流通路,能够有效地限制环路电流,使噪声得到抑制。抑制高频信号:电感对高频信号有较大的阻碍作用,可以有效抑制高频噪声。

linkking27的博客 801

python 链表推导式 xx for xx in yy

如下: unq_objnames = [l.strip() for l in open('labels.txt').readlines()] 这种形如xx for xx in yy 的形式就是链表推导式, 生成链表很简单的一种办法就是链表推导式,不仅容易看懂,还很好用: 链表表达式在for语句前面,for后面就是对参数的限定。[XXX for yyy](必须要有方括号表示是...

whatday的专栏 730

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

python中的链表推导式

python中的链表推导式 博客分类:Python Python Python代码 num=[1,2,3] myvec=[[x,x*2]forxinnum]#嵌套一个链表,格式为一个数和他的平方 printmyvec 生成链表很简单的一种办法就是链表推导式,不仅容易看懂,还很好用: ...

weixin_30675967的博客 86

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

python 链表推导式 [x,x*2] for x in num

demo1: num=[1,2,3] linkedlist=[[x,x*2] for x in num] #嵌套一个链表,格式为一个数和他的平方 print linkedlist 链表表达式在for语句前面,for后面就是对参数的限定。[XXX for yyy](必须要有方括号表示是链表),XXX表示链表,yyy限定XXX中参数。相当于java中的for(int i=...

全场梦游c的博客 729

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

python 链表推导式

链表推导式无非是为了生成链表,然后返回该链表值为前面所使用。 a = [[1, 2], [4, 5], [7, 8]] b = [[] for i in a[0]] print(b) 等价于: x = [] for i in a[0]: x.append([]) print(x)  结果: [[], []] 1)在写dp题目的时候,总是需要使用如下方式来生成初始矩阵: ...

taku 478

python 链表推导式_08--Python 函数式编程与推导式

@Author : Roger TX (425144880@qq.com)一、函数式编程1、匿名函数lambdapython 使用 lambda 来创建匿名函数。所谓匿名,意即不再使用 def 语句这样标准的形式定义一个函数。lambda parameter_list: expressionparameter_list:表示参数列表expression:表示函数表达式(不是语句)不是所有的函数表...

weixin_39905226的博客 166

Python 链表推导式的简单应用

     最近去公司实习,要实现一个正态分布的统计模型,使用了python的链表推导式,对于它的使用有了一点心得。  python的列表推导式:

m0_37382341的博客 238

python 链表推导式_字典-混合字典和字典推导式

在上节我们学习了字典的方法,本章节来了解一下混合字典及字典的遍历和字典推导式。1. 混合字典所谓混合字典,即字典中存储的数据是各种类型混合在一起的,键需要取不可变的数据类型,但是值是可以取任意类型的对象。我们先来看一个混合字典:my_dcit = {'小明':['身高:170cm','体重:65kg'],'小李':'爱学习,爱运动','小华':('居住地:苏州','出生地:上海')}这个字典的值由...

weixin_39915081的博客 343

python的维度问题及链表推导式

链表推导式:https://blog.youkuaiyun.com/zhangfeng1133/article/details/51497534

yxpandjay的博客 249
上一篇: SQL Server与Access、Excel的数据转换
下一篇: ADO.NET的Connection对象的使用
JavaProgramers
博客等级 码龄22年 660粉丝 304原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值