2011-06-29 5 views
0

質問と回答を保持するためにAccessデータベースを使用してC#プログラムのクイズを作成しようとしています。 データベーステーブルでは、質問は1つの列にあり、回答は別の列にあります。本質的に、これは私が起こりたいものです:C#Accessデータベースを使用したクイズ問題

フォームがロードされ、このようにしてデータベースからランダムに選択された質問がそのフォームに表示されます。質問自体はラベルを使って表示されます。

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(); 
      } 
     } 

    } 

    } 

私は私が私のラベルに表示されるランダムな質問を割り当てるしようとしています時点で問題を取得しています:

は、ここに私のコードです。 脇に、データベースを使用して質問と回答を保存するこの方法はありますか?

ありがとう

答えて

0

あなたが意味する機能はrand()ではなく、rand()です。

しかし、これがoledbドライバを介して可能かどうかはわかりません。

0

解決策の1つは、質問テーブルに自動番号フィールドがあることです。次に、コード内でランダムな値を生成し、ランダムに選択されたID番号に基づいてクエリを実行することができます。たとえば、質問に1〜100の番号が付けられている場合は、生成された乱数の範囲をその範囲に制限します。

関連する問題