关于2个dataset筛选数据的问题
dataset1是从sqlserver查询的数据集10w条记录,dataset2是从mysql取的数据集500条记录,现在要筛选10w条数据里和500条相关的,不相关的删掉,以前的做法是2层循环,代码如下:
dsCheck是500条数据结果集,dtTemp是10w条数据结果集。
                for (int w = 0; w < dtTemp.Rows.Count; w++)
          {
                boolDel = true;
                for (int z = 0; z < dsCheck.Tables[0].Rows.Count; z++)
                    {
                        object ojF = dsCheck.Tables[0].Rows[z][0];
                                         object ojS = dtTemp.Rows[w][6];
                        if (ojF == DBNull.Value)
                        {
                            ojF = -1;
                        }
                        if (ojS == DBNull.Value)
                        {
                            ojS = -1;
                        }
                        if (Convert.ToInt64(ojF) == Convert.ToInt64(ojS))
                        {
                            boolDel = false;
                            break;
                        }
                    }
                    if (boolDel == true)
                        dtTemp.Rows[w].Delete();
                }
                dtTemp.AcceptChanges();
方法很慢,后来考虑用dataset里边的select方法,但调了半天也没调明白,可否有人能帮忙给点提示,或就着这段代码给点修改,谢谢!
------解决方案--------------------
string sel = "";
foreach(DataRow row in dsCheck.Table[0].Rows)
{
sel += "'" + row[0] + "',";
}
sel = sel.Substring(0, sel.Length - 1);
DataRow[] dataRow=dtTemp.table[0].select("列名 in ("+sel+")");
foreach(DataRow row in dataRow)
{
 dtTemp.Rows.remove(row);
}
1.在查询数据库时如:select row1,row2 from tabel
其中的列名就是row1或者row2,你这里对应的是dtTemp.Columns[6]这列,不好意思刚才有点错误