日期:2014-05-18  浏览次数:20483 次

中午休息大家帮忙看看,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 ");
}