私は基本的な多肢選択式ゲームを作っています。Qno、Question、Correct、Wrong1、Wrong2、およびWrong3のフィールドが指定された既存のデータベースがあります。フォームが読み込まれると、このコードはデータベースからランダムな質問の順序を生成し、質問をラベルに配置し、選択肢をそれぞれのボタンに配置します。
private void Form1_Load(object sender, EventArgs e)
{
NewQuestion();
public void NewQuestion()
{
Stack numberCheck = new Stack();
int y = 0;
Random x = new Random();
bool exists = false;
y = x.Next(1, 50);
exists = numberCheck.Contains(y);
while (exists == true)
{
y = x.Next(1, 50);
exists = numberCheck.Contains(y);
}
label2.Text = Convert.ToString(y);
da.SelectCommand = new SqlCommand("SELECT Question from MC WHERE QNo=@id", cs);
da.SelectCommand.Parameters.Add("@id", SqlDbType.Int).Value = label2.Text;
cs.Open();
label1.Text = Convert.ToString(da.SelectCommand.ExecuteScalar());
cs.Close();
da.SelectCommand = new SqlCommand("SELECT Correct from MC WHERE QNo=@id", cs);
da.SelectCommand.Parameters.Add("@id", SqlDbType.Int).Value = label2.Text;
cs.Open();
button2.Text = Convert.ToString(da.SelectCommand.ExecuteScalar());
cs.Close();
da.SelectCommand = new SqlCommand("SELECT Wrong1 from MC WHERE QNo=@id", cs);
da.SelectCommand.Parameters.Add("@id", SqlDbType.Int).Value = label2.Text;
cs.Open();
button3.Text = Convert.ToString(da.SelectCommand.ExecuteScalar());
cs.Close();
da.SelectCommand = new SqlCommand("SELECT Wrong2 from MC WHERE QNo=@id", cs);
da.SelectCommand.Parameters.Add("@id", SqlDbType.Int).Value = label2.Text;
cs.Open();
button4.Text = Convert.ToString(da.SelectCommand.ExecuteScalar());
cs.Close();
da.SelectCommand = new SqlCommand("SELECT Wrong3 from MC WHERE QNo=@id", cs);
da.SelectCommand.Parameters.Add("@id", SqlDbType.Int).Value = label2.Text;
cs.Open();
button5.Text = Convert.ToString(da.SelectCommand.ExecuteScalar());
cs.Close();
}
}
}
問題リスト:
- 質問を繰り返すことができます
- 回答のリストは、データベースで宣言されている順序と同じ順序であり、ボタン1は常に正しく、残りのボタンは間違っています。