Страница: 1 |
Страница: 1 |
Вопрос: VB.Net 2005. Связывание обьектов с бд
Добавлено: 11.08.07 20:59
Автор вопроса: alex
Помогите новичку плиз. Только начал эксперементировать с VB.Net. Вопрос в следующем: пытаюсь связать поле таблицы с обьектом TextBox в коде
После открытия таблицы, в TextBox появляется значение из указанного поля. На форме, кроме TextBox, расположен DataGridView. При перемещении по нему нужно чтобы соответственно изменялось значение и в TextBox. Но там по прежнему значение первой записи. На VB перешел с Дельфи, вот никак и не сориентируюся. Там DBGrid и любой обьект подключенный через тотже DataSource работают синхронно.
Большое спасибо
Ответы
Всего ответов: 9
Номер ответа: 1
Автор ответа:
BUMM ®
Вопросов: 8
Ответов: 482
Профиль | | #1
Добавлено: 12.08.07 01:57
Здесь тоже, только биндить textbox надо к BindingSource а не к таблице из dataset
Номер ответа: 2
Автор ответа:
alex
Вопросов: 2
Ответов: 5
Профиль | | #2
Добавлено: 12.08.07 14:29
А с какими параметрами BindingSource подключать в TextBox?
Приведу код
Dim str As String = "Provider=Microsoft.Jet.OLEDB.4.0ata Source=" & FileNameBase
Dim cn As OleDb.OleDbConnection = New OleDb.OleDbConnection(str)
cn.Open()
Dim strSelect As String = "Select * from t"
Dim da As OleDb.OleDbDataAdapter = New OleDb.OleDbDataAdapter(strSelect, cn)
Dim ds As DataSet = New DataSet
da.Fill(ds)
cn.Close()
Try
BindingSource1.DataSource = ds
 ataGridView1.DataSource = BindingSource1
 ataGridView1.DataMember = ds.Tables(0).TableName
TextBox1.DataBindings.Add("Text", ds.Tables(0), ds.Tables(0).Columns(1).ToString)
end try
Номер ответа: 3
Автор ответа:
BUMM ®
Вопросов: 8
Ответов: 482
Профиль | | #3
Добавлено: 12.08.07 15:07
cn.open() + cn.close() можешь убрать
забинди вот так
Me.TextBox1.DataBindings.Add(New System.Windows.Forms.Binding("Text", Me.BindingSource1, ds.Tables(0).Columns(1).ColumnName, True))
Номер ответа: 4
Автор ответа:
alex
Вопросов: 2
Ответов: 5
Профиль | | #4
Добавлено: 12.08.07 17:59
Ошибка выскакивает : Cannot bind to the property or column name on the DataSource
Номер ответа: 5
Автор ответа:
BUMM ®
Вопросов: 8
Ответов: 482
Профиль | | #5
Добавлено: 13.08.07 04:14
убери ds.Tables(0).Columns(1).ColumnName и пропиши имя колонны явно "МояКолонна1"
Номер ответа: 6
Автор ответа:
alex
Вопросов: 2
Ответов: 5
Профиль | | #6
Добавлено: 13.08.07 09:40
Та же ошибка
Номер ответа: 7
Автор ответа:
BUMM ®
Вопросов: 8
Ответов: 482
Профиль | | #7
Добавлено: 13.08.07 14:34
тьфу блин, просмотрел...
убери DataGridView1.DataMember = ds.Tables(0).TableName
и поставь
BindingSource1.DataMember = ds.Tables(0).TableName
а биндить надо как в посте №3
Номер ответа: 8
Автор ответа:
alex
Вопросов: 2
Ответов: 5
Профиль | | #8
Добавлено: 13.08.07 16:47
Супер! Огромное спрасибо! А не подскажешь как правильно при-биндить PictureBox и поле содержащее картинку?
Номер ответа: 9
Автор ответа:
alex
Вопросов: 2
Ответов: 5
Профиль | | #9
Добавлено: 13.08.07 16:58
Все ок. Сам допетрил. Просто вместо "text" нужно поставить "image"