首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

读取ACCESS遇到的一个奇怪有关问题

2013-08-06 
读取ACCESS遇到的一个奇怪问题string connectionString ProviderMicrosoft.Jet.OleDb.4.0Data Source

读取ACCESS遇到的一个奇怪问题

            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多条。 ACCESS DataTable SQL SELECT
------解决方案--------------------


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

引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

是单引号吧?

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

我说的是like后面的点点的问题和加号的问题,也就是说你拼接出来的这个话有问题。你在ACCESS中执行

select?[问题],?[详细问题],?[回答]?from?Content?where?([问题]?like?"*塑料*")?or?([详细问题]?like?"*塑料*")?or?([回答]?like?"*塑料*")

能不能执行通过嘛?

执行通过的,就是没数据,但是我到ACCESS里面同样的select是可以查出来的。

那你到C#问吧,程序哪里设置不对。

热点排行