数据库里面有个house表,全部倒入到数据集thisDataSet里面,想从数据集里面查询某个word的wid(代号),而一个word可能有几个wid,都需要查找出来,不知道程序后面怎么写?好像datarow只能读取一行。(不用DataReader直接操作数据库),望高手赐教!!!
代码如下:
OleDbConnection myConnection = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;" +
@"Data source= d:\house.mdb");
myConnection.Open();
OleDbDataAdapter thisAdapter=new OleDbDataAdapter("SELECT wid,word FROM house",myConnection);
OleDbCommandBuilder myCommand = new OleDbCommandBuilder(thisAdapter);
DataSet thisDataSet=new DataSet();
            thisAdapter.Fill(thisDataSet,"house");
string aa="翠湖山庄";
DataRow[] drs=thisDataSet.Tables["house"].Select("word='"+aa+"'");

解决方案 »

  1.   

    OleDbDataAdapter thisAdapter=new OleDbDataAdapter("SELECT wid,word FROM house where word='"+aa+"'",myConnection);
    ;
    直接像 这样传一个参数不就得了,不需要什么DAtaRow,
      

  2.   

    DataRow[] myDataRows = myDataTable.Select("cola like '%aaa%' or cola like '%bbb%'");
      

  3.   

    你不是已经查找出来了么?不清楚你最终要做什么?
    你使用循环就可以遍历DataRow[]了。
      

  4.   

    先选择到DataSet里,再在DataSet里筛选,
    DataRow[] myDataRows = myDataTable.Select()
      

  5.   

    感谢大家!!
    对“明年今日十年之后”:我的主页面一个按钮事件要调用其它页面的一个函数cha(),在cha()函数里面需要重复查询数据库每次查询几百次(有循环),而且触发这个事件也要调用几次cha()函数,原来用的datareader,很慢。我想在初始化时就打开一次数据库,把数据倒入数据集中(内存),因为如果像你这样操作,每次都要连接数据库,再关闭,你里面有“myConnection”,这和datareader没有区别。对“jiezhi()”:我查出来了如word=“翠湖山庄”,他的wid有几个,最后想得到它的几个不同的wid,写到DataRow[] drs=thisDataSet.Tables["house"].Select("word='"+aa+"'");
    还是无法得到他的几个wid