问题描述:
现有大量数据需要生成xml文件,如何做才能达到速度最快。
同时对于生成的这个xml文件如何做才能往dataSet写入速度最快。
简单的读写我现在也会,关键我现在需要的是如果往xml写还是读到dataSet我希望效率一定要最快
因为数据量实在太多。要求有源代码。
谢谢大家了。急~~
现有大量数据需要生成xml文件,如何做才能达到速度最快。
同时对于生成的这个xml文件如何做才能往dataSet写入速度最快。
简单的读写我现在也会,关键我现在需要的是如果往xml写还是读到dataSet我希望效率一定要最快
因为数据量实在太多。要求有源代码。
谢谢大家了。急~~
解决方案 »
- datalist数据向上滚动怎么实现,分不多啦,只能给大家20分啦
- ProgressBar的属性设置
- 关于程序的自动启动
- C#,winForm中如何让TextBox只能扫描输入,不能手动输入,求切实有效方法
- 访问记录问题
- C#里面有没有类似C里面的fscanf函数?
- 跪求c#程序,将二进制文件解析到数据库中!!
- 排除万难到了这一步,走不下去了:gridview中内建的编辑无法更新,大家帮忙解决下
- datagrid中的数据如何帮定到txext中,急。。。。
- 需求类似windows explore东东
- 再问 类型“System.String”的对象无法转换为类型“System.Decimal”。
- 如何得到查询出来数据中id 值????
DataSetMyDs = New DataSet();
DataTable MyTab;'加载架构
MyDs.ReadXmlSchema(New IO.StringReader(XMLText))
Foreach( MyTab In MyDs.Tables)
{
MyTab.BeginLoadData()
Next
}然后再让DataSet加载数据。
注意:因为前面我们一个帮他加载架构信息了,这里就可以让DataSet加载数据时忽略Schema。
'加载数据
MyDs.ReadXml(New IO.StringReader(XMLText), XmlReadMode.IgnoreSchema)
Foreach (MyTab In MyDs.Tables)
{
MyTab.EndLoadData()
}Ok,这样就把数据快速的加载到DataSet了。经过实际测试,数据量越大效率比就越高
--------------
使用BCP
同时对于生成的这个xml文件如何做才能往dataSet写入速度最快。
---------------
若数据量大使用XmlReader读取,不要Load
DataSet dataSetTo = new DataSet();
dataSet.WriteXml("temp.xml",XmlWriteMode.IgnoreSchema);
dataSetTo.ReadXmlSchema(new System.IO.StringReader("temp.xml"));
foreach(DataTable MyTab in dataSetTo.Tables)
{
MyTab.BeginLoadData();
}
dataSetTo.ReadXml(new System.IO.StringReader("temp.xml"), XmlReadMode.IgnoreSchema);
foreach (DataTable MyTab in dataSetTo.Tables)
{
MyTab.EndLoadData();
}
没有别的方法再改善了吗??
/// <summary>
/// 转换XML为DATASET
/// </summary>
/// <param name="xmlData"></param>
/// <returns></returns>
private DataSet ConvertXMLToDataSet(string xmlData)
{
StringReader stream = null;
XmlTextReader reader = null;
try
{
DataSet xmlDS = new DataSet();
stream = new StringReader(xmlData);
reader = new XmlTextReader(stream);
xmlDS.ReadXml(reader);
return xmlDS;
}
catch (Exception ex)
{
string strTest = ex.Message;
return null;
}
finally
{
if (reader != null)
reader.Close();
}
}
#endregion