如何使用访问数据库在c#中显示行值?

时间:2012-03-04 23:29:51

标签: c# database ms-access row oledb

我正在制作一个程序,向用户显示随机英语单词(取自访问数据库),并要求他写下单词的希伯来语辩护。 我设法使用excel VBA中的“cells(X,Y)”非常容易地对此进行编程......但是现在当我在c#中执行它并访问时,我有点迷失了。 我设法让读者工作 - 问题是 - 如何告诉它只读取我项目中的特定行? I.E. - 它得到一个5的随机数,然后它显示第5行中英语单词的值,并期望在第5行中接收希伯来词作为答案。

这是我目前取得的成就:

     private void button1_Click(object sender, EventArgs e)
            {
            string conStr = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=E:\Words\WordsDatabase.accdb";
            string mySelect = "SELECT english,hebrew FROM study";
            OleDbConnection dbConnect = new OleDbConnection();
            dbConnect.ConnectionString = conStr;
            dbConnect.Open();
            OleDbCommand dbCmd = new OleDbCommand(mySelect, dbConnect);
            OleDbDataReader dbReader = dbCmd.ExecuteReader();

while (dbReader.Read()) { textBox1.Text += dbReader.GetValue(0).ToString() + "\r\n"; textBox2.Text += dbReader.GetValue(1).ToString() + "\r\n"; } }

非常感谢, 巴拉。

2 个答案:

答案 0 :(得分:0)

问题是SQL真的相关。将mySelect更改为:

SELECT TOP 1 english, hebrew FROM study ORDER BY NEWID()

答案 1 :(得分:0)

MS Access等效查询将是:

SELECT TOP X english, hebrew FROM study ORDER BY Rnd(-10000000*TimeValue(Now())*[id])

哪里

  • [id]是用于学习的数字(最可能的自动编号)主键字段
  • X是您要返回的行数。

Credit