簡體   English   中英

C# 使用 Access 數據庫問題的測驗

[英]C# Quiz Using Access Database Problem

我正在嘗試使用 Access 數據庫為我的 C# 程序創建一個測驗來保存問題和答案。 在數據庫表中,問題在一列中,答案在另一列中。 本質上,這就是我想要發生的事情:

表單加載,並且在這種情況下,從數據庫中隨機選擇的一個問題出現在該表單上。 問題本身將使用 label 顯示。

這是我的代碼:

private void WindowsAnalysisQuiz_Load(object sender, EventArgs e)
    {
        //declare connection string using windows security
        string cnString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Users\\Hannah\\Desktop\\\\WindowsAnalysisQuiz.accdb";

        //declare Connection, command and other related objects
        OleDbConnection conGet = new OleDbConnection(cnString);
        OleDbCommand cmdGet = new OleDbCommand();

        try
        {
            //open connection
            conGet.Open();

            cmdGet.CommandType = CommandType.Text;
            cmdGet.Connection = conGet;
            cmdGet.CommandText = "SELECT Question FROM WindowsAnalysisQuiz ORDER BY rand()";

            label1.Text = cmdGet.CommandText["Question"];

            conGet.Close();

        }
        catch (Exception ex)
        {
            //display generic error message back to user
            MessageBox.Show(ex.Message);
        }
        finally
        {
            //check if connection is still open then attempt to close it
            if (conGet.State == ConnectionState.Open)
            {
                conGet.Close();
            }
        }

    }

   }   

我在嘗試分配要在 label 中顯示的隨機問題時遇到問題。 順便說一句,這種使用數據庫存儲問題和答案的方法可行嗎?

謝謝

您的意思是 function 是 rnd(),而不是 rand()。

但我不確定這是否可以通過 oledb 驅動程序實現。

一種解決方案是在問題表中有一個自動編號字段。 然后你可以在你的代碼中生成隨機值,然后根據隨機選擇的 ID 號進行查詢。 例如,如果您的問題編號為 1 到 100,您可以將生成的隨機數的范圍限制在該范圍內。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM