你如有员工资料表,格式如下:工号  姓名   姓别   部门代号  
_____________________________________
001  张三      1        A01
002  李四      0        M01
......总名表部门代号    部门名称
___________________________
 A01          工程部
 M01          制造部
......我现在想做一个FORM界面,用于维护员工资料表.在其中设置一个大DataGridView控件,及相应的TextBox和ComboBox控件,在DataGridView控件中,我想显示如下内容:工号  姓名   姓别   部门
_________________________________  
001  张三      男    工程部
002  李四      女    制造部
.....第一个问题:如果我想新增员工,该怎样让数据传回源数据源中(因为DataGridView绑定的是对应多个源数据表)?第二个问是:如果更改DataGridView的数据源?因为我在界面中进行搜索时,是直接搜索DataGridView中行的数据,把不满足条件的记录移除,以此方法来达到递归搜索的目的(即第二次搜索时,其数据源为第一次搜索后的结果),我在搜索完成后,想重新再载入完整资料,该怎么做?

解决方案 »

  1.   

    我回答你第二个问题吧:
    我用的方法是
    DataView dv;
    if(dv.RowFilter!=null && dv.RowFilter!="")
    {
    dv.RowFilter= string.Format("({0}) AND {1}",dv.RowFilter,NewExpression );
    }
      

  2.   

    TO: jointan
    有看到你帮我解决的问题,让有很受启迪,但如果应用你这个方法到我的那个问题上,可能有点麻烦,因为我的筛选条件是针对DataGridView中每一行的所有字段,如下例:
    filed1    filed2    filed3    filed4
    _________________________________________
      AA        BBA        CC       dd
      BB        BAA        CA       DD
      CC        CAAC       DD       GG
      DD        AAC        DD       FF如果我搜索"AA"的话,我需望上面的所有的记录都能显示出来,因为每行中都有"AA",而并不是说具体某一字段的包含"AA"?
      

  3.   

    DataGridView gv;
                System.Data.DataView dv;
                string[] fields = new string[gv.Columns.Count];
                foreach (DataGridViewColumn col in gv.Columns)
                {
                    fields[col.Index]=string.Format("[{0}]",col.DataPropertyName);
                }
                string[] exps=new string[fields.Length];
                for(int i=0;i<exps.Length;i++)
                {
                    exps[i]=string.Format("{0} ='{1}'",fields[i],"AA"/*这个地方用查询变量替换*/);
                }
                string newexp = string.Join(" OR ", exps);
                
                dv.RowFilter = String.Format("({0}) AND ({1})", dv.RowFilter, newexp);
      

  4.   

    TO:jointan()    你的方法很不错,让我真的受益很多.但如果我不想用"=",即并不是判断字段的值是否等于所要搜索的值,只要在其字符串中包含有要搜索的字符串,就认为是满足条件,该怎么写.
    如:搜索的字符串是"AA",不管字段中的值是"AA" "ABAA" "BAAB"  "AAAA" ,都认为是符合条件的,该怎么写??
      

  5.   

    改一下下面这句
    exps[i]=string.Format("{0} LIKE '%{1}%'",fields[i],"AA);
      

  6.   

    你在绑定的时候不是要在初始化里面进行绑定的吗```behind
    你查找完了重新绑定一下就好了