добавить строки из ListBox в таблицу БД

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

Anta
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 106
Зарегистрирован: 19.08.2012 (Вс) 22:00

добавить строки из ListBox в таблицу БД

Сообщение Anta » 06.09.2012 (Чт) 5:29

Здраствуйте, подскажите как из списка в листбокс добавить записи в таблицу БД.
В БД существует к примеру 10 таблиц: Табл1, Табл2, Табл3, Табл4, Табл5, Табл6, Табл7, Табл8,
Табл9, Табл10 и
Существует таблица «отображающая» связи между таблицами (Таблица-связь), к примеру,
Табл1- главная и табл4 и табл5 связанные с ней 2 дочерние таблицы
id /главная табл /дочерняя таблица/ поле связка
1 /табл1/ табл4/ к1
2 /табл1/ табл5/ к1
3 /табл4/ табл3 / к3
4 /табл4/ табл2 / к3
5
6
7
8
Я вывожу
Имена всех таблиц в листбокс1
В комбобокс1 отображаются имена главных таблиц и в листбокс2 отображаются имена дочерних таблиц,
то есть выбрав имя главной таблицы В комбобокс1 мы получим список дочерних таблиц в листбокс2.


Далее, в листбокс 2 можно добавить имя таблицы из листбокс1, к примеру табл8 и табл9, то есть необходимо теперь добавить в БД(Таблица-связь) 2 строки, чтоб получилось
id /главная табл /дочерняя таблица /поле связка
1 /табл1 /табл4 / к1
2 /табл1 / табл5 / к1
3 /табл4 / табл3 /к3
4 /табл4 / табл2 /к3
5 /табл1 /табл8 / к1
6 /табл1 / табл9 / к1
7
8
Для добавления строк в талицу использую command, dataAdapter
И строку sql INSERT….

Как добавить из листбокс2 в таблицу БД только имена новых таблиц, а не все 4х?

Спасибо!

edyapd
Обычный пользователь
Обычный пользователь
 
Сообщения: 56
Зарегистрирован: 03.10.2011 (Пн) 19:54

Re: добавить строки из ListBox в таблицу БД

Сообщение edyapd » 06.09.2012 (Чт) 6:40

Может кто то подскажет как это сделать более правильно.
Я бы создал массив, куда скидывал строки, добавляемые в Листобокс2. Либо массив указателей на эти строки.
И редактировал его параллельно с редактированием Листбокс2.

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 06.09.2012 (Чт) 7:51

Ничего не понял.

Anta
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 106
Зарегистрирован: 19.08.2012 (Вс) 22:00

Re: добавить строки из ListBox в таблицу БД

Сообщение Anta » 07.09.2012 (Пт) 4:02

Всем спасибо, разобралась, в цикле все заносит в таблицу БД как нужно

Anta
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 106
Зарегистрирован: 19.08.2012 (Вс) 22:00

Re: добавить строки из ListBox в таблицу БД

Сообщение Anta » 07.09.2012 (Пт) 4:30

Возник другой вопрос, возможно кто-то сталкивался:
с проблемой отображения строк из таблицы БД (оракл) после апдейта?
Есть 1 таблица, содержащая 3 столбца: ключевое поле, условный код(название объекта) и описание объекта:
Поле1 / Поле 2/ Поле3
1 / AR12356/ матрикуль
2 / AD12365/ номер дома
3 / AK23569/ цвет дома

В VB в список(listbox) заносятся данные из Поля3, выбирая строку в этом списке, я получаю код объекта(поле2) в textbox. Затем, при необходимости, я могу изменить условный код в textbox и отправить новое значение в таблицу БД. В БД апдейт выполняется замечательно (все меняется верно), но проблема в том, что, когда я снова нажимаю на строку в списке(listbox) для некоторых item я вижу изменненые(новые) значения , для других же появляются старые… В чем может быть проблема? (подчеркиваю, в таблице БД все корректно апдейтится), при нажатию на значение в списке выполняется запрос с помощью command и reader.
Спасибо!

edyapd
Обычный пользователь
Обычный пользователь
 
Сообщения: 56
Зарегистрирован: 03.10.2011 (Пн) 19:54

Re: добавить строки из ListBox в таблицу БД

Сообщение edyapd » 07.09.2012 (Пт) 4:45

Ну так, значит в коде у тебя и ошибка. Смотри обработку события, при выборе строки.
В текстбоксе появляется только то, что ты туда прописываешь.

Anta
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 106
Зарегистрирован: 19.08.2012 (Вс) 22:00

Re: добавить строки из ListBox в таблицу БД

Сообщение Anta » 07.09.2012 (Пт) 14:43

если кому-то интересно:ответ на самый первый вопрос:
Код: Выделить всё
Dim cmdInsertTable As OleDbCommand = New OleDbCommand
Dim i As Integer
For i = TableEnfant.SelectedItems.Count - 1 To 0 Step -1

                With cmdInsertTable
                    .Connection = ObjConn
                    .CommandType = CommandType.Text
                    .CommandText = "insert INTO " + SchemaName.Text + ".table1(CLE_ID,cilon1,colon2,colon3)
VALUES (" + SchemaName.Text + ".SEQ_CLE_ID.nextval,'" + TableParent.Text + "','" + TableEnfant.SelectedItems(i) + "','" + CleNom.Text + "')"
                End With

                cmdInsertTable.ExecuteNonQuery()

Anta
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 106
Зарегистрирован: 19.08.2012 (Вс) 22:00

Re: добавить строки из ListBox в таблицу БД

Сообщение Anta » 07.09.2012 (Пт) 14:48

edyapd писал(а):Ну так, значит в коде у тебя и ошибка. Смотри обработку события, при выборе строки.
В текстбоксе появляется только то, что ты туда прописываешь.

прилагаю код для выборки из бд в textbox,возможно я действительно не замечаю ошибки:

Код: Выделить всё
Public Sub Nom_Physique_ATTR(ByVal SchemaName As ComboBox, ByVal L1 As ListBox, ByVal TB1 As TextBox)
              Try
            ObjConn.Open()
        Catch ex As Exception
            MessageBox.Show(ex.Message, "Message d'alerte", MessageBoxButtons.OK, MessageBoxIcon.Error)
        End Try

                Dim cmdSelectNomPhysiqueATTR As OleDbCommand = New OleDbCommand
        Dim NomPhysiqueATTR As OleDbDataReader

        Try

             With cmdSelectNomPhysiqueATTR
                .Connection = ObjConn
                .CommandType = CommandType.Text
                .CommandText = "SELECT ATTR_NOM FROM " + SchemaName.Text + ".table1 WHERE ATTR_DESC='" + L1.Text + "'"
            End With

            NomPhysiqueATTR = cmdSelectNomPhysiqueATTR.ExecuteReader

            While NomPhysiqueATTR.Read()
                TB1.Text = (NomPhysiqueATTR!ATTR_NOM)
            End While
            NomPhysiqueATTR.Close()

        Catch ex As Exception
            MessageBox.Show(ex.Message, "Message d'alerte", MessageBoxButtons.OK, MessageBoxIcon.Error)
        End Try


        Try
            ObjConn.Close()
        Catch ex As Exception
            MessageBox.Show(ex.Message, "Message d'alerte", MessageBoxButtons.OK, MessageBoxIcon.Error)
        End Try
    End Sub

[Viper] :: Пользуйся тэгом CODE!

Anta
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 106
Зарегистрирован: 19.08.2012 (Вс) 22:00

Re: добавить строки из ListBox в таблицу БД

Сообщение Anta » 08.09.2012 (Сб) 4:31

Anta писал(а):
edyapd писал(а):Ну так, значит в коде у тебя и ошибка. Смотри обработку события, при выборе строки.
В текстбоксе появляется только то, что ты туда прописываешь.


нужно было поставить еще одно условие для выборки...спасибо


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: Majestic-12 [Bot] и гости: 9

    TopList