Викторина C # Использование проблемы доступа к базе данных - PullRequest
0 голосов
/ 29 июня 2011

Я пытаюсь создать тест для моей программы на 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();
            }
        }

    }

   }   

У меня возникла проблема в момент, когда я пытаюсь назначить случайный вопрос, который будет отображаться на моем ярлыке. Кроме того, является ли этот метод использования базы данных для хранения вопросов и ответов выполнимым?

Спасибо

Ответы [ 2 ]

0 голосов
/ 01 июля 2011

Одним из решений является наличие поля Autonumber в таблице вопросов.Затем вы можете сгенерировать случайное значение в своем коде, а затем выполнить запрос на основе случайно выбранного идентификационного номера.Например, если ваши вопросы пронумерованы от 1 до 100, вы ограничите диапазон сгенерированного случайного числа этим диапазоном.

0 голосов
/ 29 июня 2011

Вы имеете в виду функцию rnd (), а не rand ().

но я не уверен, возможно ли это через драйвер oledb.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...