ID 번호 (1,2..20 등)를 기반으로 SQL에 저장된 1-35 개의 질문 사이에 25 개의 난수를 가져옵니다. 그러면 테스트를받는 사용자가 SQL의 질문 풀에서 무작위 질문을받습니다. 루프 변수 "a"가 존중 된 배열에 값을 입력하는 키로 사용되는 동안 SQL 매개 변수를 증가 시키려고합니다.SQL 데이터베이스 테이블에서 데이터 당기기
select top 35 * from Question_Pool order by (newid())
이것은 효과적으로 35을 복용하기 전에 질문을 randomises :
샘플 코드는
protected void Question_Fetch(int[] Mixed_Questions)
//this array is loaded with my mixed numbers between 1-35(no duplicates) the array length //is 25
{
Question_String_list = new string[25];
Question_Answers = new string[25];
Num_Answers = new string[25];
Types_Of_Question = new string[25];
User_Answers = new string[25];
isLocked = new string[25];
using (SqlCommand Comd = new SqlCommand("SELECT Question_String, Question_Answer, Type_Of_Question, Possible_Answers FROM Question_Pool WHERE Question_ID = @Question_ID", Conn))
{
SqlParameter IDParam = Comd.Parameters.Add("@Question_ID", SqlDbType.Int);
for (int a = 0; a < Mixed_Questions.Length; a++)
{
int Random_Number = Mixed_Questions[a];
Comd.Parameters.AddWithValue("@Question_ID", Random_Number);
Conn.Open();
SqlDataReader rdr = Comd.ExecuteReader();
if (rdr.Read())
{
IDParam = Mixed_Questions[a];
//Random_Number = Mixed_Questions[a];
//Comd.Parameters.AddWithValue("@Question_ID", Random_Number);
Question_String_list[a] = rdr.GetValue(0).ToString();
Question_Answers[a] = rdr.GetValue(1).ToString();
Types_Of_Question[a] = rdr.GetValue(2).ToString();
Num_Answers[a] = rdr.GetValue(3).ToString();
Conn.Close();
}
}
}
Answer_Controls();
Init_Test_Details();
}
정말 고전적인 ASP를 사용하고 있습니까? 또한 왜 객체 배열 대신에 병렬 배열을 사용하고 있습니까? –
죄송합니다. asp 태그는 실수입니다. 이것은 아직이 응용 프로그램 개발의 초기 단계이며 공동 운영 학생입니다. 제가 제공 할 수있는 지원을 코딩 할 때 쉽게 더 쉽게 보일 수있는 객체 배열을 살펴 보겠습니다. 크게 감사하겠습니다. –