dataset 用法(3)
ReadXml 提供了只将数据或同时将数据和架构从 XML 文档读入 DataSet 的方式(若要同时读数据和架构,请使用包括 mode 参数的 ReadXML 重载之一,并将其值设置为 ReadSchema)。ReadXmlSchema 方法仅读架构。
对于 WriteXml 和 WriteXmlSchema 方法也是如此。若要写入来自 DataSet 的 XML 数据或架构和数据两者,使用 WriteXml 方法。若要只写入架构,请使用 WriteXmlSchema 方法。
XML 数据可直接从文件、Stream 对象、XmlWriter 对象或 TextWriter 对象中读取。可以根据需要使用 ReadXml 的两组重载方法中的一组。第一组中的四个重载方法只取一个参数。第二组中的四个重载方法除了取第一组中的一个参数外另外多取了一个参数 (XmlReadMode)。
1、ReadXml 方法的重载形式
DataSet.ReadXml (Stream) 使用指定的 System.IO.Stream 将 XML 架构和数据读入 DataSet。
DataSet.ReadXml (String) 使用指定的文件将 XML 架构和数据读入 DataSet。
DataSet.ReadXml (TextReader) 使用指定的 System.IO.TextReader 将 XML 架构和数据读入 DataSet。
DataSet.ReadXml (XmlReader) 使用指定的 System.Xml.XmlReader 将 XML 架构和数据读入 DataSet。
DataSet.ReadXml (Stream, XmlReadMode) 使用指定的 System.IO.Stream 和 XmlReadMode 将 XML 架构和数据读入DataSet。
DataSet.ReadXml (String, XmlReadMode) 使用指定的文件和 XmlReadMode 将 XML 架构和数据读入 DataSet。
DataSet.ReadXml (TextReader, XmlReadMode) 使用指定的 System.IO.TextReader 和 XmlReadMode 将 XML 架构和数据读入DataSet。
DataSet.ReadXml (XmlReader, XmlReadMode) 使用指定的 System.Xml.XmlReader 和 XmlReadMode 将 XML 架构和数据读入DataSet。
2、ReadXml 方法的重载形式
WriteXml(Stream) 使用指定的 System.IO.Stream 为 DataSet 写当前数据。
WriteXml(TextWriter) 使用指定的 TextWriter 为 DataSet 写当前数据。
WriteXml(String) 将 DataSet 的当前数据写入指定的文件。
WriteXml(XmlWriter) 将 DataSet 的当前数据写入指定的 XmlWriter。
WriteXml(Stream, XmlWriteMode) 使用指定的 System.IO.Stream 和 XmlWriteMode 为 DataSet 写当前数据,还可以选择写架构。若要写架构,请将 mode 参数的值设置为 WriteSchema。
WriteXml(TextWriter, XmlWriteMode) 使用指定的 TextWriter 和 XmlWriteMode 为 DataSet 写当前数据,还可以选择写架构。若要写架构,请将 mode 参数的值设置为 WriteSchema。
WriteXml(String, XmlWriteMode) 使用指定的 XmlWriteMode 将 DataSet 的当前数据写入指定的文件,还可以选择将架构写入指定的文件。若要写架构,请将 mode 参数的值设置为 WriteSchema。
WriteXml(XmlWriter, XmlWriteMode) 使用指定的 XmlWriter 和 XmlWriteMode 为 DataSet 写当前数据,还可以选择写架构。若要写架构,请将 mode 参数的值设置为 WriteSchema。
3、注意点
(1)如果指定内联架构,则该内联架构用于在加载数据之前扩展现有的关系结构。如果存在任何冲突(例如,用不同的数据类型定义了同一个表中的同一列),将引发异常。
(2)如果未指定内联架构,则在必要时按照 XML 文档的结构通过推理扩展关系结构。如果不能通过推理扩展架构以公开所有数据,则将引发异常。
(3)如果 DataSet 的 XML 架构包含 targetNamespace,则可能无法读取数据,并且在调用 ReadXml 以加载 XML 中包含具有无限定命名空间的元素的DataSet 时,可能会发生异常。若要读取非限定元素,请按下例的演示,在 XML 架构中将 elementFormDefault 设置为“qualified”。
<xsd:schema id="MyDataSet"
elementFormDefault="qualified"
targetNamespace="http://www.tempuri.org/MyDataSet.xsd"
xmlns="http://www.tempuri.org/MyDataSet.xsd"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
</xsd:schema>
(4)如果 DataSet 的架构包含同一命名空间中同名但类型不同的元素,则当您尝试通过指定 XmlReadMode.ReadSchema 将该架构读入具有ReadXml 的 DataSet 时,将发生异常
4、实例:
(1)WriteXml()
using System;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlClient;
using System.Data;
namespace sqlconnection1
{
class Program
{
private void SQLConnectionF(string source, string select)
{
//创建连接
SqlConnection con = new SqlConnection(source);
SqlDataAdapter adapt = new SqlDataAdapter(select, con);
try
{
con.Open();
Console.WriteLine("connection is successful!");
}
catch (Exception e)
{
Console.WriteLine("connection error is :{0}", e.ToString());
}
//创建DataSet
DataSet ds = new DataSet();
//将数据添加到DataSet中
adapt.Fill(ds, "mytest");
ds.WriteXml(@"e:\mytest.xml");
Console.ReadLine();
con.Close();
}
static void Main(string[] args)
{
string sou = "server=duanyf\\SQLEXPRESS;" + "Initial Catalog=master;" + "UID = sa;" + "Password = dyf123";
string sel = "SELECT name,number,low,high From dbo.spt_values";
Program sqlcon = new Program();
sqlcon.SQLConnectionF(sou, sel);
}
}
}
(2)ReadXml()
using System;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlClient;
using System.Data;
namespace sqlconnection1
{
class Program
{
static void Main(string[] args)
{
DataSet dsxml = new DataSet();
dsxml.ReadXml(@"e:\mytest.xml");
Console.WriteLine("{0,-20} {1,-15}{2,-10}{3,-10}",dsxml.Tables[0].Columns[0],dsxml.Tables[0].Columns[1],
dsxml.Tables [0].Columns [2],dsxml .Tables[0].Columns[3]);
foreach (DataRow row in dsxml.Tables[0].Rows)
{
Console.WriteLine("{0,-20} {1,-15}{2,-10}{3,-10}",row[0],row[1],row[2],row[3]);
}
Console.ReadLine();
}
}
}
【转自】http://www.cnblogs.com/hulang/archive/2011/01/11/1932568.html
dataset 用法(3)的更多相关文章
- DataSet用法详细 转
DataSet用法详细 转 DataSet用法详细 一.特点介绍 1.处理脱机数据,在多层应用程序中很有用. 2.可以在任何时候查看DataSet中任意行的内容,允许修改查询结果的方法. 3.处理分级 ...
- DataSet用法详细
转自:http://www.cnblogs.com/zeroone/archive/2012/06/08/2541299.html DataSet用法详细 一.特点介绍 1.处理脱机数据,在多层应用程 ...
- dataset 用法(2)
1.为DataTable添加列 (1)添加列 DataTable tbl = ds.Tables.Add("User"); DataColumn col =tbl.Columns ...
- dataset 用法(1)
DataSet是表和列结构在内存中的表示方式,DataSet支持多表.表间关系.数据约束等,和关系数据库的模型基本一致.(本质上是微型的数据库.包含一组DataTable对象和DataTable之间的 ...
- DATASET()用法
DataSet是ADO.NET的中心概念.可以把DataSet当成内存中的数据库,DataSet是不依赖于数据库的独立数据集合.所谓独立,就是说,即使断开数据链路,或者关闭数据库,DataSet依然是 ...
- js 控制 class 类名(classList) 和 自定义属性(dataset)
classList 用法: const div = document.querySelector('div') div.classList.add('myclass') // 添加类名 div.cla ...
- tensorflow学习笔记--dataset使用,创建自己的数据集
数据读入需求 我们在训练模型参数时想要从训练数据集中一次取出一小批数据(比如50条.100条)做梯度下降,不断地分批取出数据直到损失函数基本不再减小并且在训练集上的正确率足够高,取出的n条数据还要是预 ...
- 【转】如何在TensorFlow中高效使用数据集
本文主要记录tensorflow一个比较好用的API:Dataset,feed-dict 是向 TensorFlow 传递信息最慢的方式,应该尽量避免使用.向模型提供数据的正确方式是使用输入管道,这样 ...
- dataset 和DataTable的用法
以下包含了这两种不同属性的用法: foreach (DataRow dr in dataset.Tables[0].Rows) { if (i != 0 && l ...
随机推荐
- CC++初学者编程教程(10) 搭建Android java C/C++ NDK QTforAndroid 开发环境
1 安装JDK 2 点下一步 3 点下一步 4 开始安装 5 定制路径,点下一步 6 开始安装 7 安装完成, 8 解压缩 9 启动eclipse 10 看到启动画面 11 设置工作文件夹 12 单击 ...
- why constrained regression and Regularized regression equivalent
problem 1: $\min_{\beta} ~f_\alpha(\beta):=\frac{1}{2}\Vert y-X\beta\Vert^2 +\alpha\Vert \beta\Vert$ ...
- Dreamweaver PHP代码护眼配色方案
结果展示 [1]主菜单选择编辑->首选项.在分类中选择"字体".设置代码视图的字体为Courier New [2]在分类中选择 "代码颜色",点击 &qu ...
- css3设置box-pack和box-align让div里面的元素垂直居中
只要设置元素的box-pack和box-align即可,这两个属性当前只有webkit和moz支持,要设置垂直居中的话只需要将这两个属性的值都设置为center即可,需要的朋友可以参考下 以前处理 ...
- iOS的Ping++支付接入步骤(详细)
Ping++ SDK 代码下载地址: https://github.com/CoderLeezhen/PingppDemo 参考链接: https://www.pingxx.com/guidance/ ...
- Quartz 2D - 图形上下文(Graphics Contexts)
一个Graphics Context表示一个绘制目标.它包含绘制系统用于完成绘制指令的绘制参数和设备相关信息.Graphics Context定义了基本的绘制属性,如颜色.裁减区域.线条宽度和样式信息 ...
- 混淆篇之原生DOM操作方法小结
1.0 DOM结构 1.1先来看结构图: 父节点 兄弟节点 当前节点 属性节点 子节点 兄弟节点一般任意一个节 ...
- Oracle错误ORA-03113: end-of-file on communication channel处理办法
oracle不能启动了,报错ORA-03113: end-of-file on communication channel (通信通道的文件结尾) 解决办法: SQL> startup ORAC ...
- Java语言导学笔记 Chapter 8 Thread
8.1 什么是线程 def: 线程是程序内的一个单一的顺序控制流程 作为一个顺序的控制流程,线程必须在运行它的程序中占用一些资源.例如,线程必须有它自己的执行堆栈和程序计数器.在线程内运行的代码只在此 ...
- VS的Release模式配置技巧
环境:如果要将bin\release目录作为我们产品的发布目录或者产品来源目录,那么release目录中就只能有产品需要用到的东西,但是以VS默认的配置编译的话会生成比较讨厌的.pdb,.vshost ...