[英]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.