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] 上的索引。能不能意识到使用索引,这时区别专业的数据库编程人员跟业余爱好者的最重要知识点之一。