本人从XML导入DAtaset后,此时dataset中已经包含3张表,想先从Dataset中选择出涉及3张表的一个新的数据表。然后把得到的数据放到datagridview中,最后通过datagridview有选择的导入到数据库对应的各个表。望高手指点,不胜感激!如有源码,感谢不尽!

解决方案 »

  1.   

    你可以在DataGridView里面加一个多选列。然后把你想要存入数据库的信息在多选框中选中。然后循环DataGridView当你有选中的时候就存入数据库。
      

  2.   

    DataTable dt = (DataTable)this.DataGridView1.DataSource;
                DataRow[] dr = dt.Select("flag=1", "");
                if (dr.Length <= 0)
                {
                    MessageBox.Show("当前没有记录可审核", "提示");
                    return;
                }其中Falg就是DataGrideView的多选列。设置成1为选中,0为不选中。
    那么这样就获取到了选中的所有行了。都存在dr中
    现在你就只要Foreach dr就可以了
      

  3.   

    操作一下你的DATASET不就可以了?你自己在DATASET上筛选一下呀
      

  4.   

    想先从Dataset中选择出涉及3张表的一个新的数据表---  
      通过DataRelation来创建dataset内的表间关系,并根据这些关系获取一个视图,这就是你说的一个新的数据表
    最后通过datagridview有选择的导入到数据库对应的各个表--
      可以创建多个SqlDataAdapter来进行多表更新,最好是写个存储过程
      

  5.   

    如何创建视图?我是对dataset进行操作,不是对数据库操作,可以创建视图吗?
      

  6.   


    DataView dv = new DataView(ds.Tables[0]);     
       //用RowFilter属性进行模糊查询     
       dv.RowFilter="Name LIKE'%"+TextBox1.Text.Trim()+"%'";     
       DataGrid1.DataSource = dv;     
      

  7.   

    因为XML转化成DATASET根据层次来的,所以一个XML在dataset中生成了多个表,
    你可以先操作xml在转化成dataset,也可以先转化dataset在操作Dataset都可以实现。
      

  8.   

    我就是这样实现的。但是现在遇到的一个问题就是:现在想从dataset中读取涉及3张表的而产生的一个dataview.3张表之间的关系,我已经通过Relations.add()添加好了。我想问的是如何使得dataview产生的2列涉及2张表。最好提供代码!谢谢
      

  9.   

    现在遇到的一个问题就是:现在想从dataset中读取涉及3张表的而产生的一个dataview.3张表之间的关系,我已经通过Relations.add()添加好了。我想问的是如何使得dataview产生的2列涉及2张表。最好提供代码!谢谢
      

  10.   

      DataColumn   parent   =   dsUserInfo.Tables[0].Columns["userid"];   
      DataColumn   child   =   ds.Tables[1].Columns["userid"];   
        
      //添加关系   
      DataRelation   relation   =   new   DataRelation("relation",parent,child,false);   
      ds.Relations.Add(relation);   
      datagrid1.DataSource   =   dsUserInfo.Tables[0].DefaultView;   
      datagrid1.DataBind();   
      

  11.   

    上面我都已经实现,现在就是想实现在dataview中显示2列,其中涉及2张表。
    例如:PictureLibray表有
    PictureLibraryID,PictureLibraryName 2列。
    SubPictureLibrary表有
    PictureLibraryID,SubPicLibName,SubPicLibPath 3列。
    2个表之间的关系: 
       DataSet ds = new DataSet();
       ds.ReadXml(@"C:\PictureCharacter.xml");
       ds.Relations.Add("relation1", ds.Tables["PictureLibrary"].Columns["PictureLibraryID"], ds.Tables["SubPictureLibrary"].Columns["PictureLibraryID"]);
    dataview中想显示PictureLibray.PictureLibraryName ,SubPictureLibrary.SubPicLibName。请问如何实现dataview的那样2列?谢谢!
      

  12.   

    如果能直接从Dataset中直接进行select查询,查询涉及dataset中的3张表的话。那就更简单了。不知dataset里有没有这种功能?