首页 文章

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

提问于
浏览
0

我正在制作一个程序,向用户显示随机英语单词(取自访问数据库),并要求他写下该单词的希伯来语辩护 . 我设法使用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

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

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

    MS Access等效查询将是:

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

    哪里

    • [id]是用于研究的数字(最可能的自动编号)主键字段

    • X是您想要返回的行数 .

    Credit

相关问题