Повторное заполнение DataSet

James Bond
Дата: 04.05.2005 11:47:29
Умные люди! Подскажите дураку... Проблема такая:
Есть на форе кнопка, по нажатию которй открывается другая форма, идет запрос к БД. Записи возвращаются в DataSet в таблицу Apply. (при запросе берется из формы ID и подставляется в запрос) После этого заполняются контролы на форме. Таки вот. В первый раз все отрабатывает нормально. Но, когда закрываем эту форму с результатами, переходим на другую запись, нажимаем эту же кнопку, то никаких рез-ов нет. ДатаСет заполняется, проверял... а почему так? ВОт код:

Dim Query As String
Appl = New Apply

Query = "select * from Applied_vw where comp_id = " & Label1.Text

Dim f1 As Form1 = Me.ParentForm

If f1.Data_comp1.Tables.Contains("Apply") Then
f1.Data_comp1.Tables("Apply").Clear()
End If

Dim t As DataTable
For Each t In f1.Data_comp1.Tables
MsgBox(t.TableName & "Rows.Count = " & t.Rows.Count.ToString())
Next

Dim Adp As New SqlDataAdapter(Query, Conn)

Adp.Fill(f1.Data_comp1, "Apply")

Dim pRow As DataRow

Appl.MdiParent = Me.ParentForm
Appl.WindowState = FormWindowState.Maximized
Appl.Show()
Appl.Location = New Point(0, 0)

Appl.Label1.DataBindings.Add(New Binding("Text", f1.Data_comp1, "apply.comp_name"))
Appl.DateTimePicker1.DataBindings.Add(New Binding("Value", f1.Data_comp1, "apply.date_applied"))
Appl.cmbContact.DataBindings.Add(New Binding("Text", f1.Data_comp1, "apply.person_name"))
Appl.cmbCV.DataBindings.Add(New Binding("Text", f1.Data_comp1, "apply.cv_type"))
Appl.txtNotes.DataBindings.Add(New Binding("Text", f1.Data_comp1, "apply.notes"))
Appl.CheckBox1.DataBindings.Add(New Binding("checked", f1.Data_comp1, "apply.answer"))
Appl.txtAnswer.DataBindings.Add(New Binding("Text", f1.Data_comp1, "apply.result"))
кузя
Дата: 04.05.2005 11:57:01
у тебя никаких exception'ов не возникает при выполнении этой части программы ? try-catch-finally используешь ?
James Bond
Дата: 04.05.2005 12:01:03
Использую при заполении Try. Ничего.
Там в ДатаСете уже есть одна таблица Company, но вряд ли это связано как-то. Может как-то биндить надо по-другому?
кузя
Дата: 04.05.2005 12:23:17
как предположение, попробуй выставить свой контекст для mdi-child ?
Appl = New Apply
Appl.BindingContext = New BindingContext()
James Bond
Дата: 04.05.2005 12:26:11
Блин, помогло....
А в чем прикол-то?
кузя
Дата: 04.05.2005 12:44:00
есть подозрение, что BindingManagerBase.Current после DataTable.Clear улетает в непотребное состояние и не возвращается оттуда даже после DataAdapter.Fill.

если есть возможность - проверь это. т.е. убери создание нового контекста, а перед добвлением binding'ов к контролам поставь:

Appl.BindingContext[f1.Data_comp1, "Apply"].Position = 0
James Bond
Дата: 04.05.2005 12:49:46
Знаешь - помогло...
Сахават Юсифов
Дата: 05.05.2005 01:50:18
Какая версия студии?