数据集DATASET中如何更新数据?
我用XML文档来做数据源ASP.NET'以下的代码NewsId=NewDataSetNewsId.ReadXml(Server.MapPath("XMLdata/news...
我用XML文档来做数据源
ASP.NET
'以下的代码
NewsId = New DataSet
NewsId.ReadXml(Server.MapPath("XMLdata/news.xml")) '读取XML文档的数据
DV = NewsId.Tables(0).DefaultView
DV.RowFilter = "id = " + Str(num) '筛选数据集中的数据
Dim DR As DataRow
DR = DV.Table.Rows(0)
DR("topic") = topic
DR("type") = type
DR("Conten") = Conten
DR("author") = author
DR("times") = times
DR("id") = num
'这里需要更新数据集的方法.
NewsId.WriteXml(Server.MapPath("XMLdata/news.xml")) 写入XML文档!
Response.Redirect("add_newlist.aspx") '跳传页面
现在要更新数据集里id=1这一行的记录.
应该用什么方法进行更新?
ASP.NET
因为DATASET直接读取XML文档的数据.所以没有OleDbDataAdapter
DATASET又不能直接UPDATA.... 展开
ASP.NET
'以下的代码
NewsId = New DataSet
NewsId.ReadXml(Server.MapPath("XMLdata/news.xml")) '读取XML文档的数据
DV = NewsId.Tables(0).DefaultView
DV.RowFilter = "id = " + Str(num) '筛选数据集中的数据
Dim DR As DataRow
DR = DV.Table.Rows(0)
DR("topic") = topic
DR("type") = type
DR("Conten") = Conten
DR("author") = author
DR("times") = times
DR("id") = num
'这里需要更新数据集的方法.
NewsId.WriteXml(Server.MapPath("XMLdata/news.xml")) 写入XML文档!
Response.Redirect("add_newlist.aspx") '跳传页面
现在要更新数据集里id=1这一行的记录.
应该用什么方法进行更新?
ASP.NET
因为DATASET直接读取XML文档的数据.所以没有OleDbDataAdapter
DATASET又不能直接UPDATA.... 展开
2个回答
2013-06-04
展开全部
Delphi 6 含有许多更新更强的XML支持功能,增加了XML文件编程,XML数据绑定向导,XML映象和BizSnap(SOAP/XML Web服务)。本文是三篇论述Delphi 6中XML功能系列文章的第三篇,也是最后一篇,论述Delphi 6中的XML映象工具,也称之为XML映象器(XML Mapper)。
XML映象器
可以单独打开或者在IDE的工具(Tools)菜单中打开映象器(XML Mapper)。这个工具将XML文件影射为类似于数据库中的数据集(DataSet)!在前二篇文章中,我们都使用TXMLDocument组件来处理XML文件或XML绑定的数据。现在,我们不再使用TXMLDocument组件了。我们用XML映象器将XML文件转换成数据包(或反之),这样就可以象我们非常熟悉得那样使用诸如DataSet这样的组件来处理XML数据。
XML映象器可以打开XML文件和数据包文件(*.xml,*.cds),纲文件(*.dtd,*.xdr,*.xsd),库文件(*.xrp)和转换文件(*.xtr)。后面这个转换文件是由映象器自行产生的。现在加载我们在前二篇文章中用到的Clinic.xml文件,看看数据影射成什么样。
如图1所示,Clinic.xml影射为一个Clinics结构,含有若干Clinic子项。每个Clinic有4个域:@No, Title, Date, 和Topics。注意@No是属性,其他3个是元素。
将鼠标移至Clinic节点,按右键,选择"Select All"(Ctrl+A)或者"Select All Children",这样就把@No, Title, Date and Topics各项加到中间的映象表内。此时还没有生成相应的数据集域。
我们再次到Clinic节点按下鼠标右键,选择"Create Datapacket from XML"(Ctrl+D),这时产生了相应的数据包并显示在映象器的右方,如图2所示。
映象器将XML文件转换成4个标准格式的数据包。我们还可以增加或删除数据包。这在B2B场合尤为重要,将接收到的数据(纪录)插入到数据库中。
创建并测试转换
按下Create and Test Transformation按钮,随即弹出一个DBGrid窗口,以ClientDataSet数据包格式显示Clinic.xml文件里的数据。数据转换之后,有4种方式存盘。对于初学者来说,可以存回原先的Clinic.xml文件。另外还可以存为包数据文件格式(*.xml),库文件(repository)格式(.xrp)和转换文件格式(*.xtr)。后面的库文件可以被XMLTransform组件(在Data Access标签里)调用。
XML转换
Delphi 6里有3个XML转换组件。TXMLTransformProvider组件通过clinic.xtr文件将原始XML文件转换到ClientDataSet。
举例来说,在Delphi 6的主窗体上安放一个TXMLTransformProvider(在Data Access标签里)。将TransformRead属性的TransformationFile子属性设为clinic.xtr作为数据源。将XMLDataFile设为clinic.xml文件。
然后安放一个ClientDataSet组件,将它的ProviderName属性设为XMLTransformProvider。
现在可以激活ClientDataSet组件了,它将由XMLTransformProvider提供的数据转换过来。它的PacketRecords属性值缺省为-1,表示转换全部XML文件。
要显示数据,我们再加入DataSource和DBGrid组件。将DataSource指向ClientDataSet,DBGrid指向DataSource,就象我们通常使用得那样。结果显示如图3。
现在可以象使用数据库数据那样使用XML文件里的数据了。如果对数据进行了修改,可以调用ClientDataSet.ApplyUpdates方法将改动的数据存回XML文件。
但是这样做是不够的。我们还得启动XML映象器,将创建方式由"XML to Datapacket"改为"Datapacket to XML"。这时如果按下"Create and Test Transformation"键,看到的是空白页。然后将转换结果存为ClinicToXml.xtr文件。
现在,将TXMLTransformationProvider的TransformationWrite属性中的子属性TransformationFile设为ClinicToXml.xtr文件。
最后在主窗体的OnClose事件中加上存盘指令:
ClientDataSet1.ApplyUpdates(-1)
程序退出之前会将作出的数据修改存回XML文件。
这样就为Delphi 6的B2B开发环境BizSnap的虚拟中间层作好了数据准备。
XML映象器
可以单独打开或者在IDE的工具(Tools)菜单中打开映象器(XML Mapper)。这个工具将XML文件影射为类似于数据库中的数据集(DataSet)!在前二篇文章中,我们都使用TXMLDocument组件来处理XML文件或XML绑定的数据。现在,我们不再使用TXMLDocument组件了。我们用XML映象器将XML文件转换成数据包(或反之),这样就可以象我们非常熟悉得那样使用诸如DataSet这样的组件来处理XML数据。
XML映象器可以打开XML文件和数据包文件(*.xml,*.cds),纲文件(*.dtd,*.xdr,*.xsd),库文件(*.xrp)和转换文件(*.xtr)。后面这个转换文件是由映象器自行产生的。现在加载我们在前二篇文章中用到的Clinic.xml文件,看看数据影射成什么样。
如图1所示,Clinic.xml影射为一个Clinics结构,含有若干Clinic子项。每个Clinic有4个域:@No, Title, Date, 和Topics。注意@No是属性,其他3个是元素。
将鼠标移至Clinic节点,按右键,选择"Select All"(Ctrl+A)或者"Select All Children",这样就把@No, Title, Date and Topics各项加到中间的映象表内。此时还没有生成相应的数据集域。
我们再次到Clinic节点按下鼠标右键,选择"Create Datapacket from XML"(Ctrl+D),这时产生了相应的数据包并显示在映象器的右方,如图2所示。
映象器将XML文件转换成4个标准格式的数据包。我们还可以增加或删除数据包。这在B2B场合尤为重要,将接收到的数据(纪录)插入到数据库中。
创建并测试转换
按下Create and Test Transformation按钮,随即弹出一个DBGrid窗口,以ClientDataSet数据包格式显示Clinic.xml文件里的数据。数据转换之后,有4种方式存盘。对于初学者来说,可以存回原先的Clinic.xml文件。另外还可以存为包数据文件格式(*.xml),库文件(repository)格式(.xrp)和转换文件格式(*.xtr)。后面的库文件可以被XMLTransform组件(在Data Access标签里)调用。
XML转换
Delphi 6里有3个XML转换组件。TXMLTransformProvider组件通过clinic.xtr文件将原始XML文件转换到ClientDataSet。
举例来说,在Delphi 6的主窗体上安放一个TXMLTransformProvider(在Data Access标签里)。将TransformRead属性的TransformationFile子属性设为clinic.xtr作为数据源。将XMLDataFile设为clinic.xml文件。
然后安放一个ClientDataSet组件,将它的ProviderName属性设为XMLTransformProvider。
现在可以激活ClientDataSet组件了,它将由XMLTransformProvider提供的数据转换过来。它的PacketRecords属性值缺省为-1,表示转换全部XML文件。
要显示数据,我们再加入DataSource和DBGrid组件。将DataSource指向ClientDataSet,DBGrid指向DataSource,就象我们通常使用得那样。结果显示如图3。
现在可以象使用数据库数据那样使用XML文件里的数据了。如果对数据进行了修改,可以调用ClientDataSet.ApplyUpdates方法将改动的数据存回XML文件。
但是这样做是不够的。我们还得启动XML映象器,将创建方式由"XML to Datapacket"改为"Datapacket to XML"。这时如果按下"Create and Test Transformation"键,看到的是空白页。然后将转换结果存为ClinicToXml.xtr文件。
现在,将TXMLTransformationProvider的TransformationWrite属性中的子属性TransformationFile设为ClinicToXml.xtr文件。
最后在主窗体的OnClose事件中加上存盘指令:
ClientDataSet1.ApplyUpdates(-1)
程序退出之前会将作出的数据修改存回XML文件。
这样就为Delphi 6的B2B开发环境BizSnap的虚拟中间层作好了数据准备。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
壹寰(深圳)科技文化有限公司
2021-03-27 广告
2021-03-27 广告
不同公司提供的方案也不一样。更多详尽准确的信息可以找壹寰(深圳)科技文化有限公司。91数据恢复是壹寰(深圳)科技文化有限公司旗下专业数据恢复品牌,91数据恢复专注于勒索病毒数据恢复、勒索病毒数据修复、数据库修复、数据库解密恢复、企业安全防护...
点击进入详情页
本回答由壹寰(深圳)科技文化有限公司提供
推荐于2017-09-23
展开全部
用XML文档来做数据源 不怎么实用吧```很少人这么选择,不好意思,帮不上忙,不推荐这个,也没用过这个方法.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询