string connectionString = "Provider=Microsoft.Jet.OleDb.4.0;Data Source=";
            string sql = "select [问题], [详细问题], [回答] from Content where ([问题] like'*" + content + "*') or ([详细问题] like'*" + content + "*') or ([回答] like'*" + content + "*')";
            //string sql = "select * from Content";
            connectionString += path;
            OleDbConnection con = new OleDbConnection(connectionString);
            con.Open();
            OleDbDataAdapter ada = new OleDbDataAdapter(sql, con);
            DataSet ds = new DataSet();
            ada.Fill(ds, "Content");
            DataTable dt = ds.Tables["Content"];
            con.Close();
            return dt;
当我用string sql = "select * from Content";的时候,可以获取到DataTable
可是当我用string sql = "select [问题], [详细问题], [回答] from Content where ([问题] like'*" + content + "*') or ([详细问题] like'*" + content + "*') or ([回答] like'*" + content + "*')";的时候,总是获取不到相关数据,但是我用这个查询语句去ACCESS里面去使用时我是能够查询出相关数据的,难道是因为数据量太大了?总共数据有32000多条。ACCESSDataTableSQLSELECT

解决方案 »

  1.   

    但是我用这个查询语句去ACCESS里面去使用时我是能够查询出相关数据的
      

  2.   

    有时候我在前台的程序里面拼接SQL的时候很多时候就会把点点“'''''”打多了或者打少了。你试试把string sql中的sql取出来,执行下试试。我只会SQL SERVER的,access的不会。取的时候逐行编译取出,不要直接复制。
      

  3.   

    又是ACCESS……,两个问题
    #1.like后面的字符跟like之间没有用空格隔开
    #2.like后面的字符串用双引号,试试。
    例: like "*test*"
      

  4.   

    看下程序是否报异常。
    如果还解决不了,请转ACCESS区问问。
      

  5.   

    select [问题], [详细问题], [回答] from Content where ([问题] like "*塑料*") or ([详细问题] like "*塑料*") or ([回答] like "*塑料*")
    这是我从程序里面提取出来的,我拿到ACCESS里面测试是可以用的。
      

  6.   

    select [问题], [详细问题], [回答] from Content where ([问题] like "*塑料*") or ([详细问题] like "*塑料*") or ([回答] like "*塑料*")
    这是我从程序里面提取出来的,按照您的方法做的,可是还是不行,查询出来为空,但是进ACCESS里面用这句查询时可以的。
      

  7.   

    access东西不知道了,你去C#那里问问吧,我估计是C#的问题
      

  8.   

    正常的语句我觉得应该是这样吧,我对ACCESS不懂
    select [问题], [详细问题], [回答] from Content where ([问题] like '*塑料*') or ([详细问题] like '*塑料*') or ([回答] like '*塑料*')
      

  9.   

    单引号双引号都用过了,程序肯定没问题,因为我用string sql = "select * from Content";的时候是可以查询出来的,郁闷啊~
      

  10.   

    单引号双引号都用过了,程序肯定没问题,因为我用string sql = "select * from Content";的时候是可以查询出来的,郁闷啊~
    我说的是like后面的点点的问题和加号的问题,也就是说你拼接出来的这个话有问题。你在ACCESS中执行select [问题], [详细问题], [回答] from Content where ([问题] like "*塑料*") or ([详细问题] like "*塑料*") or ([回答] like "*塑料*")能不能执行通过嘛?
      

  11.   

    单引号双引号都用过了,程序肯定没问题,因为我用string sql = "select * from Content";的时候是可以查询出来的,郁闷啊~
    我说的是like后面的点点的问题和加号的问题,也就是说你拼接出来的这个话有问题。你在ACCESS中执行select [问题], [详细问题], [回答] from Content where ([问题] like "*塑料*") or ([详细问题] like "*塑料*") or ([回答] like "*塑料*")能不能执行通过嘛?
    执行通过的,就是没数据,但是我到ACCESS里面同样的select是可以查出来的。
      

  12.   

    单引号双引号都用过了,程序肯定没问题,因为我用string sql = "select * from Content";的时候是可以查询出来的,郁闷啊~
    我说的是like后面的点点的问题和加号的问题,也就是说你拼接出来的这个话有问题。你在ACCESS中执行select [问题], [详细问题], [回答] from Content where ([问题] like "*塑料*") or ([详细问题] like "*塑料*") or ([回答] like "*塑料*")能不能执行通过嘛?
    执行通过的,就是没数据,但是我到ACCESS里面同样的select是可以查出来的。
    那你到C#问吧,程序哪里设置不对。
      

  13.   

    单引号双引号都用过了,程序肯定没问题,因为我用string sql = "select * from Content";的时候是可以查询出来的,郁闷啊~
    我说的是like后面的点点的问题和加号的问题,也就是说你拼接出来的这个话有问题。你在ACCESS中执行select [问题], [详细问题], [回答] from Content where ([问题] like "*塑料*") or ([详细问题] like "*塑料*") or ([回答] like "*塑料*")能不能执行通过嘛?
    找到原因了- -!程序里面应该用 '%test%' 晕死!
    谢谢你
      

  14.   

    单引号双引号都用过了,程序肯定没问题,因为我用string sql = "select * from Content";的时候是可以查询出来的,郁闷啊~
    我说的是like后面的点点的问题和加号的问题,也就是说你拼接出来的这个话有问题。你在ACCESS中执行select [问题], [详细问题], [回答] from Content where ([问题] like "*塑料*") or ([详细问题] like "*塑料*") or ([回答] like "*塑料*")能不能执行通过嘛?
    找到原因了- -!程序里面应该用 '%test%' 晕死!
    谢谢你。我就说SQL SERVER里面like后面明显的%怎么ACCESS就变成*****了