Рейтинг:
1
CHill60
Есть пара вещей, которые нужно попробовать
- попробуйте очистить элементы перед переназначением источника данных (я, кажется, помню, что делал что-то вроде ComboBlood.DataSource = Nothing
- Или попробуйте сбросить привязки данных Контроль.Метод ResetBindings (System.Окна.Формы)[^]
ComboBlood.DataSource = dt
ComboBlood.DisplayMember = "Bloodtype"
ComboBlood.ResetBindings()
Member 13890537
Привет @Mr. CHill60 я попробовал решение, которое вы дали. Все еще не работает
Тусклый str как струна
str = "вставить в tblBloodtype([Bloodtype]) значения (?)"
Dim cmd как новая OleDbCommand(str, connString)
cmd.параметры.Добавить(Новый OleDbParameter("Bloodtype", CType(ComboBlood.текстовая строка)))
УМК.Метод executenonquery()
УМК.Располагать()
'ComboBlood.DataSource = Nothing 'тоже не работает
Ящик для сообщений.Шоу(ComboBlood.Текст + " был добавлен")
- ПОКАЖИТЕ ДАННЫЕ
da.SelectCommand = New OleDbCommand("Select * from tblBloodtype", myConnection)
ComboBlood.DataSource = Nothing ' здесь не работает
да.Заполнить(ДТ)
'ComboBlood.DataSource = Nothing 'здесь тоже не работает
ComboBlood.Источник данных = dt
ComboBlood.DisplayMember = "Группа Крови"
ComboBlood.ResetBindings() 'тоже не работает
Коннор.Закрывать()
CHill60
Попробуйте использовать
dim r as Integer = cmd.ExecuteNonQuery()
и проверьте значение r, прежде чем сказать, что все "завершено". Я бы тоже не стал использовать
cmd.Dispose()
- просто прокомментируй это пока. Это лучше использовать
Using connString As New OleDbConnection("Provider= Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\DB_HR.accdb;Jet OLEDB:DATABASE PASSWORD=dbhr123;")
...
End Using
Member 13890537
Здравствуйте Мистер Чилл60 Добрый День
Проблема уже была решена в моем коде
da.SelectCommand = New OleDbCommand("Select * from tblBloodtype", myConnection)
Я просто меняю myConnection на connString тот, который я использую для открытия и закрытия своей базы данных.
Я просто понимаю, не используя ComboBlood.Источник Данных = Ничто И ComboBlood.ResetBindings() данные, которые я ввожу в свой combobox, отображаются правильно. Мне все еще нужно положить их обратно?
И
Г-н почему следует избегать использования cmd.Утилизировать()?
Заранее благодарю Вас мистер
Я желаю вам хорошего дня и хорошего здоровья.
Кстати, значение r = 1, и я следовал тому, что вы сказали :)
Частная Суб Bloodtesting1()
Дим да как новый OleDbDataAdapter()
Дим ДТ в качестве нового объекта DataTable()
Если MessageBox.Show("вы уверены, что хотите добавить это?" & vbNewLine & "[группа крови]: "& ComboBlood.Текст, "сохранение данных", кнопки MessageBoxButtons.Да, MessageBoxIcon.Question) = Windows.Формы.свойство DialogResult.Тогда Да
Используя connString как новый объект oledbconnection("поставщик= Майкрософт.Туз.Oledb для.12.0;Источник данных=|параметр datadirectory|\DB_HR.# то#; для Jet oledb для:пароль базы данных=dbhr123;")
Коннор.Открыть()
Тусклый str как струна
str = "вставить в tblBloodtype([Bloodtype]) значения (?)"
Dim cmd как новая OleDbCommand(str, connString)
cmd.параметры.Добавить(Новый OleDbParameter("Bloodtype", CType(ComboBlood.текстовая строка)))
Dim r как целое число = cmd.Метод executenonquery()
-командир.Метод executenonquery()
Ящик для сообщений.Show(CType(r, String))
-Ящик для сообщений.Шоу(ComboBlood.Текст + " был добавлен")
- Покажите Данные
da.SelectCommand = New OleDbCommand("Select *from tblBloodtype", connString)
да.Заполнить(ДТ)
ComboBlood.Источник данных = dt
ComboBlood.DisplayMember = "Группа Крови"
Коннор.Закрывать()
Конец Использования
Еще
Выход Из Субмарины
Конец, Если
ComboBlood.Текст = ""
Конец Подводной Лодки
CHill60
Если это сработает, не беспокойтесь о том, чтобы положить эти вещи обратно. Использование правильной строки подключения определенно сделает свое дело. С помощью Using...End Using
блок-это хорошая практика, поскольку вы позволяете фреймворку заботиться об утилизации за вас.
Member 13890537
Доброе утро мистер чилл Спасибо за вашу помощь
Теперь я изменю все cmd.Dispose() код, который я использую для использования...Конец использования блока.
Хорошего вам дня и здорового дня мистер