中午休息大家帮忙看看,XML文件操作问?绑顶有分!!!
我把XML数据读取到datatable中。然后用datatable.select( "id= " & id)这样进行筛选绑定,如果id <10的话,没有问题。数据都能读出来。但如果id> =10时。不能读出数据!!没想什么原因!!
顺便提醒大家。不是传值的问题。我直接写成:datatable.select( "id=10 ")也不行!!极郁闷中。。高手们路过支招!!!
------解决方案--------------------sf
------解决方案--------------------1:xml构十行数据吗?
2:单步调试,看看datatable中的数据.
------解决方案--------------------帮顶
------解决方案--------------------学习 关注
帮顶
------解决方案--------------------如果本来就没有id> 10的数据,你怎么解决也是解决不了的。
你还是先看看吧。
------解决方案--------------------没有代码,设个断点单步调试一下
------解决方案--------------------调式看看你的DataTable中存的是什么
------解决方案--------------------帮顶,LZ还是看下数据里有id> 10的没
------解决方案--------------------看看数据
------解决方案--------------------关注,帮顶下!
------解决方案--------------------顶
------解决方案--------------------ding
------解决方案--------------------看看你datatable的id列是字符串还是int型的,估计是select的时候因为字段是字符串型,比较就当作字符串来比较了。
------解决方案--------------------准备xml的时候同时准备Schema
下面是一个简单的示例
using System;
using System.Reflection;
using System.Data;
using System.Xml;
using System.IO;
using System.Text;
class A
{
public static void Main(String[] args)
{
DataTable dt = new DataTable();
dt.Columns.Add( "id ", typeof(int));
dt.Columns.Add( "str ", typeof(string));
dt.Rows.Add(new object[] {9, "9 " });
dt.Rows.Add(new object[] { 10, "10 " });
dt.Rows.Add(new object[] { 11, "11 " });
DataSet ds = new DataSet();
ds.Tables.Add(dt);
//不同时写入Schema.则读取出来时因为无法分析数据格式可能导至select出错
//ds.WriteXml( "xmlfile ");
ds.WriteXml( "xmlfilewithschema ",XmlWriteMode.WriteSchema);
ds.Tables.Remove(dt);
//同时读出时也带着Schema一起读出可以有效还原数据格式
//ds.ReadXml( "xmlfile ");
ds.ReadXml( "xmlfilewithschema ", XmlReadMode.ReadSchema);
dt = ds.Tables[0];
PrintTable(dt, "id=10 ");
PrintTable(dt, "id> 10 ");
PrintTable(dt, "id <10 ");
Console.Read();
}
static void PrintTable(DataTable dt,string condition)
{
DataRow[] drs = dt.Select(condition);
Console.WriteLine( "条件:{0}记录数:{1} ",condition ,drs.Length);
foreach(DataRow dr in drs){
foreach (DataColumn col in dt.Columns)
{
Console.Write( "{0}:{1}\t ",col.Caption,dr[col.Caption] );
}
Console.Write( "\r\n ");
}