这是被调用的一个函数,当searchterm传递了参数,我想把access数据库中book表中的name中的与searchterm类似的项存到datatable中,但是搞了半天还是无用。请高手指教。由于比较菜,请详细一点。谢谢。 
public DataTable RetrieveRows(string searchterm)
    {
        using (OleDbConnection con = new OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA Source=E:\\google\\db1.mdb"))
        {
            DataTable dtReturn = new DataTable();
            con.Open();
            OleDbCommand obj=new OleDbCommand("SELECT * from book where Name like 'a%'  order by Name ",con);
            OleDbParameter param = new OleDbParameter();
            param.ParameterName = "@searchterm";
            searchterm.Trim().Replace("'", "''");
            searchterm += "%";
            param.Value = searchterm;
            obj.Parameters.Add(param);
            OleDbDataAdapter adpt = new OleDbDataAdapter(obj);            adpt.Fill(dtReturn);
            con.Close();
            return dtReturn;
        }
}

解决方案 »

  1.   

    这个要做什么看不出来,用存储过程要写obj.CommandType = CommandType.StoredProcedure;吧
    要是SQL直接查询下面这些有什么用
    OleDbParameter param = new OleDbParameter(); 
                param.ParameterName = "@searchterm"; 
                searchterm.Trim().Replace("'", "''"); 
                searchterm += "%"; 
                param.Value = searchterm; 
                obj.Parameters.Add(param); 
      

  2.   

    那不说其它的就是说如果我想把access中的数据存入datatable应该怎么样写呢
      

  3.   

    using (OleDbConnection con = new OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA Source=E:\\google\\db1.mdb")) 
            { 
                DataTable dtReturn = new DataTable(); 
                con.Open(); 
                OleDbCommand obj=new OleDbCommand("SELECT * from book where Name like 'a%'  order by Name ",con); 
                OleDbParameter param = new OleDbParameter(); 
                OleDbDataAdapter adpt = new OleDbDataAdapter(obj);            
                adpt.Fill(dtReturn); 
                con.Close(); 
                return dtReturn; 
            }