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 ...
随机推荐
- 百用随身系统 Veket Linux
Veket Linux 是一个随身的可装在U盘的Linux操作系统. 特点:1,随身系统,装在U盘可走遍天下,它几乎支持“所有”的电脑,就我所接触得到的电脑它都支持并成功驱动,就这十多年的安装的电脑都 ...
- GDOI模拟赛Round 1
GDOI模拟赛Round 1 数据结构 题目描述:给出一个长度为\(n\)的序列,支持两种操作: 1.对某段区间都加上一个数 2.给出\(p.k\),求下面表示式对\((10^9+7)\)取模 \[\ ...
- Exception Handling in ASP.NET Web API
public static void RegisterGlobalFilters(GlobalFilterCollection filters) { filters.Add(new HandleErr ...
- java中文乱码解决之道(三)—–编码详情:伟大的创想—Unicode编码
原文出处:http://cmsblogs.com/?p=1458 随着计算机的发展.普及,世界各国为了适应本国的语言和字符都会自己设计一套自己的编码风格,正是由于这种乱,导致存在很多种编码方式,以至于 ...
- sql2008中时间类型问题
DATEDIFF (DD ,@sdate ,getdate() ) eg30 计算从开始日期到今天的天数 datename(weekday,@sdate) eg星期三 查询那一天是星期几 SQL Se ...
- HTML文本框
文本框样式大全 输入框景背景透明:<input style="background:transparent;border:1px solid #ffffff"> 鼠 ...
- iOS协议
ios中的协议:大家猛一看 感觉挺高深的 其实ios中的协议就是c#,java中的接口 只是变了一个形式: 自我感觉ios中的协议没有c#中的接口好 人家的接口就是固定你的程序内容的 而ios中 ...
- 为什么析构函数要加visual?
一般来说,有使用visual的类,其析构函数都需要加上visual,这是为什么呢? 因为使用多态时,一般都是由基类指针来使用派生类的,在删除这个派生类对象时也一样,由基类指针来调用, 可以想象,如果析 ...
- 【JQ成长笔记】jQuery cookie的使用
jquery cookie挺好用的.简单实在.菜鸟都能用得上..额.文笔不好不好..咳咳.. 先来看看jq.cookie的aip 写入cookie $.cookie("this-cookie ...
- APP分享抓取网页图片
var getShareImages = { defaultimg:"defaultimg.png", _allImgs:null, init:function(){ getSha ...