复制XML的数据到sql2005中遇到的问题,请高手帮忙啊

major_cd 2007-09-01 09:24:39
我用如下方法复制XML的数据到sql2005中,



string xmlFilename;
xmlFilename = sXMLFile;
DataSet newDataSet = new DataSet();

foreach ( DataTable t in newDataSet.Tables)
{
t.BeginLoadData();
}
newDataSet.ReadXml(xmlFilename);
foreach (DataTable t in newDataSet.Tables)
{
t.EndLoadData();

}


现在遇到问题,就是 在数据中有怪字符,就会newDataSet.ReadXml(xmlFilename)的时候抱错,
“ ”(十六进制值 0x1C)是无效的字符。 行 31882,位置 112。

<scaddress><![CDATA[哈尔滨 ]]></scaddress>
哈尔后面的这个 就是那个怪字符

XML是如下方法生成的

set @bcp='bcp "select row from ##B2BXMLTemp order by id asc" queryout "'+@FilePath+'" -c -S'+@sqlserver+' -U'+@UserName +' -P'+@PassWord

exec master..xp_cmdshell @bcp



请问, 有什么方法可以解决这个问题?不论在导出XML数据的时候屏蔽怪字符,或导入的时候,只要解决这个问题就好,万分感谢


...全文
264 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
chuxue1342 2007-09-07
  • 打赏
  • 举报
回复
搞错了!你用dataset.ReadXML("导入XML文件","导入模式")
你把模式选下!!
chuxue1342 2007-09-07
  • 打赏
  • 举报
回复
搞错了吗??你要把XML导入到数据怎么用dataset.readxml这是读出吧!写入是dataset.writeXML("XML文件","写入模式")
major_cd 2007-09-07
  • 打赏
  • 举报
回复
楼上的,我云哦
major_cd 2007-09-07
  • 打赏
  • 举报
回复
和这个没关系
wuyi8808 2007-09-06
  • 打赏
  • 举报
回复
读入stream,然后如何去掉怪字符?用replace?我头疼的是如果怪字符不固定,不是很恼火?一会是个钥匙,一会是个其他的,

-----------------------------------------------

一个一个地找出怪字符,然后扔掉。

major_cd 2007-09-04
  • 打赏
  • 举报
回复
我把xml文件的开头格式改成 <?xml version="1.0" encoding="utf-8"?>

然后

System.Text.Encoding encoding = System.Text.Encoding.GetEncoding("utf-8");
System.IO.StreamReader reader = new System.IO.StreamReader(xmlFilename, encoding);
newDataSet.ReadXml(reader);

错误依旧,只是错误的列的位置变化了下,但行是一样的,到底该怎么做哦,


XML是如下方法生成的

set @bcp='bcp "select row from ##B2BXMLTemp order by id asc" queryout "'+@FilePath+'" -c -S'+@sqlserver+' -U'+@UserName +' -P'+@PassWord

exec master..xp_cmdshell @bcp

这是不是改做下改动?这句SQL是在SQL2000下执行的,


major_cd 2007-09-04
  • 打赏
  • 举报
回复
up
Jinglecat 2007-09-03
  • 打赏
  • 举报
回复
// ...
//string path = ...
//System.Text.Encoding encoding = System.Text.Encoding.GetEncoding("GB2312");
//System.Text.Encoding encoding = System.Text.Encoding.Unicode;
// ...
System.IO.StreamReader reader = new System.IO.StreamReader(path, encoding);
newDataSet.ReadXml(reader);
// ...
Jinglecat 2007-09-03
  • 打赏
  • 举报
回复
假如你直接使用 DataTable.ReadXml(string fileName)
确保你 文件编码为 utf-8
用 VS 打开 》文件 》另存为 》 小三角 》 ....

否则用其他重载方法,显示指定文件编码
Jinglecat 2007-09-03
  • 打赏
  • 举报
回复
因为编码不对头,导致乱码 ....
major_cd 2007-09-03
  • 打赏
  • 举报
回复
怎么整成UTF-8?
songle912 2007-09-03
  • 打赏
  • 举报
回复
你所谓的怪字符很大程度上就是指乱码吧...
songle912 2007-09-03
  • 打赏
  • 举报
回复
整成UTF-8就得了
falx2004 2007-09-03
  • 打赏
  • 举报
回复
DataSet.ReadXml(stream)
城市猎人0611 2007-09-03
  • 打赏
  • 举报
回复
up
major_cd 2007-09-03
  • 打赏
  • 举报
回复
Jinglecat:

我的xml文件 的开头是这格式 <?xml version="1.0" encoding="gb2312"?>
我在处理程序中修改如下:
System.Text.Encoding encoding = System.Text.Encoding.GetEncoding("gb2312");
System.IO.StreamReader reader = new System.IO.StreamReader(xmlFilename, encoding);
newDataSet.ReadXml(reader);
但在这步依然出错 “ ”(十六进制值 0x1C)是无效的字符。
换成
System.Text.Encoding encoding = System.Text.Encoding.GetEncoding("utf-8");
也是一样,
我哪理解错了吗?

major_cd 2007-09-02
  • 打赏
  • 举报
回复
回(风飞翔) ,不是空格,只是拷贝到这变成空格,其实是个钥匙样的字符,

回(wuyi8808)
读入stream,然后如何去掉怪字符?用replace?我头疼的是如果怪字符不固定,不是很恼火?一会是个钥匙,一会是个其他的,
wuyi8808 2007-09-01
  • 打赏
  • 举报
回复
建议先把XML文件读入Stream,去掉怪字符,然后使用:

DataSet.ReadXml(Stream)

这样就不用写回XML文件了。
wuyi8808 2007-09-01
  • 打赏
  • 举报
回复
在处理XML文件前先把怪字符去掉。

比如说,先按二进制方式读入这个XML文件,去掉怪字符,重新写回。然后再执行你的操作。
ekinchen3 2007-09-01
  • 打赏
  • 举报
回复
多了一个空格可是?
生成XML的时候不让空格产生,行吗?
加载更多回复(2)
内容概要:LTK8319是一款单通道H桥有刷直流电机驱动器,工作电压范围为2.5V至12V,支持最高3.9A的峰值电流和2.5A的平均电流驱动能力,适用于小家电、玩具、电子锁、机器人等小型电动设备。该芯片通过两个逻辑输入(INA和INB)控制电机的正转、反转、停止与刹车,并支持PWM调速控制。集成欠压锁定(UVLO)、过温保护(TSD)及自动故障恢复功能,确保系统安全可靠运行。当INA和INB持续为低电平时,芯片进入低功耗休眠模式,显著降低静态功耗。采用ESOP-8封装,符合环保无铅标准。; 适合人群:电子工程师、嵌入式系统开发者、电机控制技术人员,以及从事小型机电产品研发的设计人员;具备基本电路知识和电机控制经验者更佳。; 使用场景及目标:①用于驱动小型有刷直流电机或步进电机的一个绕组,实现精确的方向与速度控制;②适用于电池供电设备对功耗敏感的应用,利用休眠模式延长续航时间;③在电机启停频繁、负载波动大的场合,发挥其电流控制与保护机制优势,提升系统稳定性。; 阅读建议:此文档提供了详细的电气特性、功能逻辑表、保护机制与时序参数,建议结合典型应用电路进行硬件设计,并重点关注电源去耦电容选型、散热布局及PWM频率设置(不超过100kHz),以确保系统可靠运行。
内容概要:本文研究了一种基于遗传算法(GA)与粒子群优化算法(PSO)融合的无人机三维路径规划方法,旨在解决复杂环境无人机避障与路径优化的问题。通过构建三维空间环境模型,提出一种结合GA全局搜索能力强与PSO收敛速度快优势的混合优化策略,并利用Matlab平台完成算法仿真与路径可视化。研究不仅实现了无人机在存在多个障碍物场景下的安全、高效飞行路径规划,还对GA与PSO两种算法在路径长度、计算耗时、收敛稳定性等方面进行了对比分析,评估其性能差异,为实际应用算法选型提供依据。; 适合人群:具备一定算法设计基础和Matlab编程能力的科研人员、自动化与人工智能方向的研究生,以及从事无人机导航、智能控制等相关领域的工程技术人员。; 使用场景及目标:①应用于城市密集建筑区、山地森林等复杂地形的无人机自主巡检与应急救援任务;②为智能交通、地理测绘、灾害监测等需要自主路径决策的无人系统提供算法支持与仿真验证;③通过对比不同智能优化算法的表现,辅助研究人员在特定应用场景下选择最优路径规划方案。; 阅读建议:建议读者结合提供的Matlab代码进行仿真实验,调整种群规模、迭代次数、障碍物分布等参数,深入理解算法运行机制与性能表现,并可进一步拓展至动态环境更新、多无人机协同避障等更复杂的研究方向。

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧