Получение данных из соединения MySQL и отображение их на TextBox - PullRequest
1 голос
/ 13 февраля 2012

Я создал таблицу MySQL. Я могу вставить данные, но теперь я хочу получить сохраненные данные после ввода их в TextBox другой вкладки в моем приложении Windows на языке c #.

Я кодировал кнопку «Обновить», чтобы получить данные, но я не знаю, правильно ли это или нет. По сути, я хочу щелкнуть по нему, получить данные из таблицы и разместить их в текстовом поле.

Вот что я получил до сих пор для получения части данных:

    private void button3_Click(object sender, EventArgs e)
    {
        string clanname, date, type, rules, final;
        string connString = "Server=localhost;Database=request;Uid=root;Pwd=;";
        using (MySqlConnection mcon = new MySqlConnection(connString))
        using (MySqlCommand cmd = mcon.CreateCommand())
        {
            mcon.Open();
            cmd.CommandText = "SELECT * FROM requesttcw";
            using (MySqlDataReader reader = cmd.ExecuteReader())
            {
                while (reader.Read())
                {
                    clanname = textBox1.Text.Trim();
                    date = textBox2.Text.Trim();
                    type = textBox2.Text.Trim();
                    rules = textBox2.Text.Trim();
                }
            }
        }
    }

Пожалуйста, помогите! Спасибо

1 Ответ

3 голосов
/ 13 февраля 2012

Запрос Select в вашем вопросе извлекает данные из вашей таблицы requesttcw.Вы захотите прочитать эти данные из вашего reader экземпляра и добавить их в соответствующие текстовые поля.Например, вы можете сделать что-то вроде этого для получения данных:

//textBox1 will hold the value of the first row and first column of your database.
textBox1.Text =  reader.GetString(0);

Обновление индекса в команде GetString, приведенной выше, изменит столбец, из которого вы выбираете данные.Итак, вам нужно будет соответствующим образом обновить этот индекс, чтобы получить правильные данные из вашей таблицы и вставить в свойство .Text правого текстового поля.

Я не знаю, с каким типом данных вы имеете дело втвой стол.Если тип отличается от string, вы можете использовать соответствующую функцию Get для типа, int, double и т. Д. Проверьте справочную страницу MySqlDataReader длядругие типы.

В зависимости от частоты смены макета таблицы, вы также можете использовать .GetOrdinal для получения данных с помощью вашего считывателя.Эта команда позволяет вам указать имя столбца вместо его индекса.Вышеуказанный вызов может быть изменен на:

//assuming "clanname" is a column in your database
textBox1.Text =  reader.GetString(reader.GetOrdinal("clanname");

Наконец, в вашем примере вы использовали

while (reader.Read()) { ... }

. Это будет циклически проходить по каждой строке в вашем наборе результатов запроса.Я не знаю, сколько у вас текстовых полей или вы ищете определенный формат, но учтите, что если вы хотите показывать данные для поля из нескольких строк в ваших текстовых полях, вам придется добавить к Text свойство для каждой итерации цикла.

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