Модераторы: gambit, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Заполнение textBox из БД по значению ComboBox 
:(
    Опции темы
007700
Дата 20.12.2012, 09:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 21.12.2011

Репутация: нет
Всего: нет



Необходимо реализовать учебную среду. Реализовываем на C# с помощью Windows Forms. Существует база данных в Access. В ней два столбца: номер лабораторной и текст задачи. В одной лабораторной должно быть несколько задач. Следовательно, номера лабораторной будут повторяться. Итак, ComboBox заполняется номерами лаб из базы. Далее студент выбирает в ComboBox номер лабораторной. По номеру лабораторной в TextBox должен рэндомно выводиться текст одной из задач. Написали некоторый код, но он не работает. Есть подозрение, что здесь какая-то глобальная ошибка, нужна помощь.
Код

if (comboBox1.SelectedIndex >= 0)
            {
                string N = comboBox1.SelectedItem.ToString();
                 AutoCompleteStringCollection namesCollection = new AutoCompleteStringCollection();
                LabN = N;
                int d1 = dataGridView1.RowCount;
                int count = 0;
                for (int i = 0, j = 1; i < d1; i++)
                {
                    if (count < d1 - 1)
                    {
                        if (N == dataGridView1.Rows[i].Cells[j].Value.ToString())
                        {
                            OleDbConnection connection = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0; data source=Tasks.mdb");
                            OleDbCommand command = connection.CreateCommand();
                            connection.Open();
                            command.CommandText = "SELECT distinct [Task] FROM [Task] WHERE [LabN] = ? ORDER BY RAND() LIMIT 1";
                            command.Parameters.Add("LabN", OleDbType.Char).Value = comboBox1.SelectedText;
                            OleDbDataReader c = command.ExecuteReader();
                            while (c.Read())
                            {
                                namesCollection.Add( c["Task"].ToString());
                            }
                            count++;
                        }
                    }
                    else
                        MessageBox.Show("Ничего не выбрано");
                }
            }


PM MAIL   Вверх
007700
Дата 20.12.2012, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 21.12.2011

Репутация: нет
Всего: нет



Океей, половину вопроса можно снять. Итак, в нашей базе есть три столбца LabN, TaskN, Level. Все поля числовые. Нам нужно передавать в TextBox значение TaskN в виде текста. НО если меняешь тип данных на текстовый, то получаем следующую ошибку: несоответствие типов данных в выражении условия отбора! Помогите, пожалуйста.
Код

if (comboBox1.SelectedIndex >= 0)
            {

                string N = comboBox1.SelectedItem.ToString();
                OleDbConnection connection = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0; data source=Lab.mdb");
                OleDbCommand command = connection.CreateCommand();
                connection.Open();
                command.CommandText = "SELECT TOP 1 [Zadanie] FROM [Lab] WHERE [Lab]=? AND [Level]=? ORDER BY Rnd([Zadanie])";
                command.Parameters.Add("Lab", OleDbType.Char).Value = N;
                command.Parameters.Add("Level", OleDbType.Char).Value = levelZ;
                string zadacha;
                zadacha = command.ExecuteReader().ToString();
                textBox1.Text = zadacha;     
           }

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка Windows Forms | Следующая тема »


 




[ Время генерации скрипта: 0.0893 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.