代码如下:
 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           人

解决方案 »

  1.   

                while (Reader.Read())
                {
                    MessageBox.Show(string.Format("{0},{1}", Reader["英文字段1"].ToString(), Reader["英文字段2"].ToString()));
                }
    试试这样看 ...
      

  2.   

    select * from Sheet1 where 英文字段1  like 'a%' and 英文字段1  like '%c'我不知道jet是否支持计算字符串最后一个char的函数。如果支持,那么第二个条件表达式可以写为这个函数的写法。第一个条件写为 like 'a%',这在数据比较多时是非常重要的。这可以利用到在 [英文字段1] 上的索引。能不能意识到使用索引,这时区别专业的数据库编程人员跟业余爱好者的最重要知识点之一。
      

  3.   

    如果要是以textbox1.Text为开头的话,怎么表示
      

  4.   

    Reader.Read()
    这个方法是前进到下一条记录并返回一个布尔值
    只要下面还有内容就会返回true一直到到结束
    至于想知道结果有几个什么的话你可以在循环的时候做一个计数
    表达式什么的SQL我不是很懂...但是从你之前提问的描述看了应该是正确的,只是不知道你这么写效率和安全性如何
    你可以试着参考一下 sp1234 的说明