У меня есть несколько полей со списком, которые нужно загружать один раз и отображать несколько раз (всякий раз, когда открывается основная форма). Причина этого в том, что загрузка формы занимает около 10 секунд каждый раз, когда она открывается из-за ненужных повторных действий. запрос.
Вот пример того, что у меня есть в качестве источника поля со списком, и что я сделал.
Я поместил запрос, соединение и т. д. в модуль и вызвал его в форме входа - я не получаю никаких ошибок, но данные не загружаются в комбо.
'In Module
sql = "SELECT DIR_ID, DIR_NM FROM LTC_FBS_DIR ORDER BY DIR_NM ASC"
RConStr = String.Format(RConStrFormat, LoginForm.txtUser.Text, LoginForm.txtPass.Text)
'using instead of dim connemp
Dim connemp4 As System.Data.OleDb.OleDbConnection = New System.Data.OleDb.OleDbConnection(RConStr)
connemp4.Open()
Dim datemp4 As OleDbDataAdapter = New OleDbDataAdapter(sql, connemp4)
datemp4.Fill(ds, "Dir")
'Form Load event
Dim tbl4 As DataTable = ds.Tables("Dir")
DBS_DIRECTORComboBox.DisplayMember = "DIR_NM"
DBS_DIRECTORComboBox.ValueMember = "DIR_ID"
DBS_DIRECTORComboBox.DataSource = tbl4
1 ответ
Ваш код выглядит нормально; Убедитесь, что в наборе данных есть данные и/или попробуйте пропустить сопоставления таблиц, я имею в виду изменение строк кода.
Замените эту строку
datemp4.Fill(ds, "Dir")
С этой строкой
datemp4.Fill(ds)
Также заменить эту строку
//' in Form Load event
Dim tbl4 As DataTable = ds.Tables("Dir")
С этим
Dim tbl4 As DataTable = ds.Tables(0)
Похожие вопросы
Новые вопросы
.net
НЕ используйте для вопросов о .NET Core - используйте вместо этого [.net-core]. .NET Framework - это программная среда, предназначенная главным образом для операционной системы Microsoft Windows. Он включает в себя реализацию библиотеки базовых классов, общеязыковой среды выполнения (обычно называемой CLR), общей системы типов (обычно называемой CTS) и динамической среды исполнения. Он поддерживает множество языков программирования, включая C #, VB.NET, F # и C ++ / CLI.
ds
и где вызывается модуль?