日期:2014-05-17  浏览次数:20861 次

Access 数据库,先搜索数据库得到数据库中“英文字段1”里面符合以a字母开头c字母结尾的数据并输出。
代码如下:
 dbconn = new OleDbConnection(@"provider=microsoft.jet.oledb.4.0; Data Source=输入法.mdb");//选择创建文件虚拟库
                dbconn.Open();
                string s = textBox1.Text;
                OleDbCommand cmd = new OleDbCommand("select * from Sheet1 where 英文字段1  like 'a%c' ", dbconn);
                OleDbDataReader Reader = cmd.ExecuteReader();//建立新的读取对象
                Reader.Read();
                MessageBox.Show(Reader["英文字段1"].ToString() + "," + Reader["英文字段2"].ToString());
上面就是我得代码,但是输出值时,只输出了“abc,七”,可是我要的结果应该是:“abc,七和ac,人”,应该这两个结果都满足我的要求啊。为什么现在只输出一个。不明白我得代码哪里写错了,请大神帮忙看看!!!
我得Access数据库是这样的
英文字段1 英文字段2
a            一
ab           四
abc          七
ac           人

------解决方案--------------------
            while (Reader.Read())
            {
                MessageBox.Show(string.Format("{0},{1}", Reader["英文字段1"].ToString(), Reader["英文字段2"].ToString()));
            }

试试这样看 ...
------解决方案--------------------
select * from Sheet1 where 英文字段1  like 'a%' and 英文字段1  like '%c'

我不知道jet是否支持计算字符串最后一个char的函数。如果支持,那么第二个条件表达式可以写为这个函数的写法。

第一个条件写为 like 'a%',这在数据比较多时是非常重要的。这可以利用到在 [英文字段1] 上的索引。能不能意识到使用索引,这时区别专业的数据库编程人员跟业余爱好者的最重要知识点之一。