使用XML导入导出数据的问题?
我从SQLSERVER的表里取出5个表的相关连的记录放到dataset中,所用的dataset为非类型化的。
直接程序里dataset outDs = new dataset();然后使用writexml方法直接生成一个xml文件。
生成的文件格式应该是好的。
然后我在导入程序里new一个dataset使用readxml方法将该文件读入,并根据主键和外键的关联生成5个表的每一条记录。问题就在这里:因为主表的主键需要更改,我就要主表的老的主键在数据集
的关联表里用select找到相应的记录行,然后再生成insert语句插入表里。
现在遇到的问题是:有时候导入xml文件是正确的,有时候会把我的记录关联改错了。我真搞不清楚
是怎么一回事了。
问题点数:100、回复次数:14Top
1 楼wuyouyi()回复于 2005-08-02 13:42:26 得分 0
大家救命啊。我已经彻底晕了,一方面对xml不熟悉,一方面对.net也不太熟悉。
给点分析也好。Top
2 楼JzeroBiao(先知)回复于 2005-08-02 13:49:46 得分 10
慢慢调试,帮顶Top
3 楼hxylovesp(我不能)回复于 2005-08-02 13:52:44 得分 10
关注Top
4 楼NewBo(^_^)回复于 2005-08-02 14:02:32 得分 20
直接从数据库中SELECT出来的数据集附给DataSet应该是类型化的,
你可以试一下先把表结构存到本地DataSet.WriteXmlSchema(Schema.xsd);
读数据的时候先读XSD(结构)文件,然后在读XML(数据)文件!Top
5 楼StarsRiver(学无止境)回复于 2005-08-02 16:03:17 得分 10
顶一下Top
6 楼wuyouyi()回复于 2005-08-02 19:59:49 得分 0
writexml和readxml一定要类型化的数据集吗?Top
7 楼wuyouyi()回复于 2005-08-03 10:31:51 得分 0
如果我用强类型,又出来问题了。强类型里面定义的有些decimal字段和datetime字段。而数据表生成记录的时候有些字段是空的。那么好了,我用writexml写出一个xml文件。再导入到另一个类型化数据集实例的时候就出现了varchar不那转换成numric。varchar不能转换成datetime等错误。
但如果不是用类型化的数据集好像是能转过来的。
大家又什么好的方法通过U盘到数据。表比较多?再次谢谢大家了。Top
8 楼wuyouyi()回复于 2005-08-03 13:01:43 得分 0
大家又什么好的方法通过U盘到数据。表比较多?再次谢谢大家了。Top
9 楼bkss(白开水水)回复于 2005-08-03 13:18:20 得分 10
...........Top
10 楼wuyouyi()回复于 2005-08-04 12:22:04 得分 0
UPTop
11 楼dqjia(从头再来)回复于 2005-08-04 14:01:55 得分 20
readxml有时候会出现一些问题,有一次我的表里包含的字段和表名称相同结果搞出一堆错。Top
12 楼wuyouyi()回复于 2005-08-04 16:56:38 得分 0
那还有其他什么办法啊?多表通过U盘交换数据。Top
13 楼wuyouyi()回复于 2005-08-04 21:54:38 得分 0
如果我用强类型,又出来问题了。强类型里面定义的有些decimal字段和datetime字段。而数据表生成记录的时候有些字段是空的。那么好了,我用writexml写出一个xml文件。再导入到另一个类型化数据集实例的时候就出现了varchar不那转换成numric。varchar不能转换成datetime等错误。
但如果不是用类型化的数据集好像是能转过来的。
大家又什么好的方法通过U盘到数据。表比较多?再次谢谢大家了。
Top
14 楼dqjia(从头再来)回复于 2005-08-05 09:29:42 得分 20
空的字段在select的时候用isnull转换一下不行吗?日期为空就转换成一个特定值,readxml以后再对特定值进行处理Top




