请问一下各位大大 事情是这样的 我本地有 3个XML文件   A1   A2    A3 
我如何才能一次装载一个XML文件到DATASET 里面呢   最后我要把3个都装到DATASET  里面去一次性装载也是可以的   但是A1  A2  A3 是 分开的3个文件我想的是DATASET。READXML("文件路径")但是这样不行呀 第一个还可以  第二个就不显示到DATASET里面了 这是为什么 
在线求解

解决方案 »

  1.   

    DataSet是这样存储的:Table(0)中存放Feature层的信息,包括fno等属性,只有一行;
    Table(1)中包括Attribute的信息包括ano等属性,有两行。如果Attribute下还有其他子层,就依次放在 Table(2)..中。 DataSet读取数据之后,可以与DataGrid绑定进行显示,绑定时可以针对DataSet中的单个表,也可以一次绑定所有表。
      

  2.   

    这是我的代码   问题是 在第一次都可以读到XML  
    但第二次就讲不到了                   readds.ReadXml(@"d:\res_table");
    请看最后2句
    // 建立连接
                SqlConnection conn= db.conn();
                conn.Open();
                    //实例化一个Command
                    SqlCommand cmd=new SqlCommand();
                    //与连接字符串关联
                    cmd.Connection = conn;
                //类型为Sql命令
                    cmd.CommandType = CommandType.Text;
                //实例化一个Documnent XML
                    XmlDocument xml = new XmlDocument();
                //XML加载上面导出的数据 这里我默认为D盘下  路径到时候可以修改
                    xml.Load(@"d:\res_table");
                //实例化一个DS 用来装所有的数据表
                    DataSet readds = new DataSet();
                //查询一张表传入 要查询的表的SQL语句
                    cmd.CommandText = "select res_id from res_table";
                //实例化一Sda
                    SqlDataAdapter sda = new SqlDataAdapter(cmd);
                    //这里是把数据库的上面CommandText的Sql语句查询出来的内容加载到SqlTableRes_table里
                DataSet SqlTableRes_table=new DataSet();
                //把自己数据库存表 保存到SqlTableRes_table 里用于下面对比
                sda.Fill(SqlTableRes_table, "RES_TABLE");                //读取本地XML文件到Readds里
                    readds.ReadXml(@"d:\unit_table");
                    readds.ReadXml(@"d:\res_table");
      

  3.   

    三个XML结构相同吗?检查一下是不是被分别装到了三个表中
      

  4.   

    我想把他们装到同一个DS 的不同TABLE中   但是老是不显示  里面只有第一次装载的第一张表
      

  5.   

    建3个datagridview,分别绑定到ds.table[0],ds.table[1],ds.table[2]。看看是不是写到3张表里了
      

  6.   

    每次调用readxml方法时,原来的会被覆盖吧,也就是只能保存一个,你可以这样子,定义三个dataset,分别为ds1,ds2,ds3,分别调用readxml,这样的话,三个dataset就有数据了,然后可以通过ds1.tables.add()方法分其他的加进来,这样三个表就在一个dataset中了
      

  7.   

    问题是现在DATASET  里面只有一张表  装载不进去第二个XML  只有第一个XML能装载进去
      

  8.   

    sda.Fill(SqlTableRes_table, "RES_TABLE");保存到不同的表那就fill到不同的表啊。
    dataset ds = new dataset();
    datatable dt1 = new datatable("table1");
    ds.table.add(dt1);
    datatable dt2 = new datatable("table2");
    ds.table.add(dt2);
    datatable dt3 = new datatable("table3");
    ds.table.add(dt3);
    fill的时候分别
    sda.Fill(SqlTableRes_table1, "table1");
    sda.Fill(SqlTableRes_table2, "table2");
    sda.Fill(SqlTableRes_table3, "table3");
      

  9.   

    我试过  每次FILL 到DS 里面的数据都是 上面CMD.COMMANDTEXT="SELECT " 这里的这句查询语句的值 
      

  10.   

    试试: DataSet dataSet = new DataSet();            DataSet tempSet = new DataSet();
                tempSet.ReadXml("A");
                dataSet.Merge(tempSet);            tempSet = new DataSet();
                tempSet.ReadXml("B");
                dataSet.Merge(tempSet);
      

  11.   

    不需要在一棵树上吊死.可以用三个ds来装三个XML,然后把3个ds合并成一个就Ok了.
      

  12.   


    此办法 不行 没能解决  
    关于 14楼朋友所说 我试过了  我本地的文件是这样的DS.READXML(@"D:/UNIT_TABLE");  
         是不是因为这个的原因  我分别用新的DS 来装 可是老是前面那条SQL 语句查询的数据 没能读到 本地的XML
      

  13.   

    可以自己解析XML,然后读的时候装入DataSet,我就是这么做的。
      

  14.   

    你可以尝试一下,用DataTable.ReadXml然后将DataTable放到DataSet中。