一个XML文件,我把他转成DATASET,DATASET里有4个DATATABLE,这4个DATATABLE相互都有关系,由于字段太多,我想通过DATAVIEW.RowFilter来进行过滤,从而得到搜索的结果
具体情况是这样的
四个表分别为file_list,file,document_profile,field
file_list表
archive_id   archive_date archive_by   type
30           2006-5-23     vicky        Afile表
file_name       location    document_type   version_label   version_number
FormReport.xls  test mail    D                root            1document_profile表
id      name      description
4       ecopy01field表
id     type     name    field_text
9      D        数字    8888以上就是一条数据的关系,问题出来了, 我现在要搜索的条件是field元素的name属性=“数字”,他的文本是8888的记录,要把file表中的file_name和version_number得出来,我对XML转dataset不熟,请多多指教!

解决方案 »

  1.   

    附上XML文本
    <file_list xmlns="http://tempuri.org/data_file.xsd" archive_id="30" archive_date="2006-05-23 16:53:30.0" archive_by="vicky 01" type="A" segment="这样_001" no_of_files="28">
    <file name="444349564935061d03360619191b074717021753594658405d595e545359465942595f5e54555f415943595f5e5c554956495349" doctype="ecopy01" id="1346" version_id="1385">
            <file_name>FormReport.xls</file_name>
            <location>test mail</location>
            <document_type>D</document_type>
            <version_label>ROOT</version_label>
            <version_number>1</version_number>
            <effective_start_date>2006-05-23 00:00:00.0</effective_start_date>
            <effective_end_date />
            <description>xls 测试</description>
            <file_reference_number />
            <default_profile>
            </default_profile>
            <document_profile id="4" name="ecopy01" description="">
                <field id="9" type="D" name="日期">2006-05-23 00:00:00.0</field>
                <field id="10" type="N" name="数字">8888.0</field>
            </document_profile>
            <segment>这样_001</segment>
        </file>
    </file_list>
      

  2.   

    很复杂的问题,没时间帮你了,建议研究下 sql server 2005 的 xml 特性
      

  3.   

    如果能够找到他们之间的关系,我想就好办了,主要是XML转成DATASET后,是怎么让那写边联系在一起的,急啊
      

  4.   

    首先你的第一步是否成功,即xml=>DataSet你可以使用DataSet.ReadXml方法来进行转换。
      

  5.   

    to 我现在要搜索的条件是field元素的name属性=“数字”,他的文本是8888的记录,要把file表中的file_name和version_number得出来field表与file表没有直接的关系。
    如果转换成DataSet,你可以使用DataTable.Select方法来获得DataRow[]。
      

  6.   

    我现在的想法是,把DATASET中的若干个DATATABLE联合起来放到DATAVIEW里面去,但是现在问题是DATAVIEW只支持一个DATATABLE,通过DataSet.Relations找关系,真是麻烦
      

  7.   

    由于XML文件是客户给我们的,考虑到XML架构格式的问题,有的XML文件可以用READXML读取,有的却不行,所以没办法,只有迭代判断了,虽然东西是做出来了,自己感觉不是很理想,谢谢大家!