VB.Net 2013 Как программно обновить источник связывания, не получая ошибок / предупреждений о позднем связывании?

Я создал DataSet с DataTable & TableAdapter, который содержит команды выбора / обновления / вставки / удаления, относящиеся к моей базе данных MSSQL. DataTable выбирает все поля из таблицы Person (два поля, в частности, строка LastName и UpdateUserID int).

Затем я сделал простую тестовую форму с текстовым полем и кнопкой. На вкладке "Источники данных" я перетащил поле "Фамилия" на форму. Это создает MyDataset, MyTableAdapter и MyBindingSource в форме. Он также связывает текстовое поле с полем LastName источника BindingSource.

Вот полный код формы:

Public Class Form1

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        loadData()
    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Me.Validate()
        Me.MyBindingSource.EndEdit()
        ' Me.MyBindingSource.Current("updateUserID") = 123
        Me.MyTableAdapter.Update(Me.MyDataset.myDatatable)
        loadData()
    End Sub

    Private Sub loadData()
        Me.MyTableAdapter.Fill(Me.MyDataset.myDatatable)
    End Sub

End Class

Это все работает совершенно нормально. Проблема возникает, когда я раскомментирую строку: "Me.MyBindingSource.Current("updateID") = 123". Я пытаюсь установить UpdateID, чтобы сохранить идентификатор пользователя, который недавно внес изменение.

В Visual Studio 2008 это работало нормально. Но я только что обновился до 2013 года, и теперь я получаю сообщение об ошибке "Option Strict On запрещает позднюю привязку".

(PS, это тестовая программа. В реальной программе, конвертированной с 2008 года, я получаю только предупреждения, говорящие "Разрешение с поздней привязкой; могут возникнуть ошибки времени выполнения".)

Я понимаю, почему я получаю эти ошибки / предупреждения: потому что IDE не знает, что такое DataType DataColumn "updateUserID".

Но что я могу сделать, чтобы вручную обновить BindingSource перед сохранением? Я не думаю, что отключение Option Strict - хорошая идея.

DataColumns в DataTable имеют свои типы данных. Есть ли способ ссылаться на DataColumn напрямую, а не через строку его имени?

Я ищу что-то вроде:

Me.MyBindingSource.Current.DataColumns.UpdateUserID.value = 123

Спасибо за любую помощь!

0 ответов

Другие вопросы по тегам