【问题标题】:Why does the msdn example for DataSet.ReadXml (stream) not work for .NET 1.0?为什么 DataSet.ReadXml(流)的 msdn 示例不适用于 .NET 1.0?
【发布时间】:2013-05-23 20:59:15
【问题描述】:

我想知道使用流读取 XML 文件然后插入 SQLCE 是否会更快(而不是从文件中读取数据)。所以,我尝试了这段代码:

DataSet dset = new DataSet("New DataSet");
System.IO.FileStream streamRead = new System.IO.FileStream(filePathName, System.IO.FileMode.Open);
dset.ReadXml(streamRead);

...从这里:http://msdn.microsoft.com/en-us/library/55hehd8c(v=vs.80).aspx

...但是得到这些编译错误:

参数 '1':无法从 'System.IO.FileStream' 转换为 'System.Xml.XmlReader'” -和: "'System.Data.DataSet.ReadXml(System.Xml.XmlReader)' 的最佳重载方法匹配有一些无效参数"

是因为最早的例子(上面的链接)是针对 .NET 2.0 的,而我被 1.0 卡住了吗? IOW,流重载在 1.0 中不可用?

更新

我也想测试一下:

StringReader sr = new StringReader(filePathName);
DataSet dset = new DataSet("duckBills");
dset.ReadXml(sr);

...从这里:http://knowdotnet.com/articles/datasetreadxml.html,但得到了类似的错误消息;我认为卡在 .NET 1.0 上可能是我的问题...

【问题讨论】:

  • 在您链接的 MSDN 页面的底部显示“版本信息 ... .NET Compact Framework ... 支持:2.0”,所以我认为如果您受到限制,您就不走运了到 1.1
  • 啊,是的;我认为我的怀疑是正确的。 “该死的!”正如 Kip Dynamite 在回应特百惠分裂成数不清的锋利碎片时所说的那样。

标签: xml compact-framework sql-server-ce filestream .net-1.0


【解决方案1】:

使用

new XmlTextReader(Stream)

DataSet dset = new DataSet("New DataSet");
using (System.IO.FileStream streamRead = new System.IO.FileStream(filePathName, System.IO.FileMode.Open))
{
    XmlTextReader reader = new XmlTextReader(streamRead);
    dset.ReadXml(reader);
}

【讨论】:

  • 虽然我得到,“不能隐式转换类型'System.Xml.XmlTextReader'到'System.IDisposable'”并且必须用“XmlTextReader”替换“var”,我会解决这个问题并尝试这出...
  • 已修复。古代没有实现IDisposable!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-09
  • 1970-01-01
相关资源
最近更新 更多