Как сделать оператор for each для Строковой базы данных SQL с помощью оператора sqlbulkcopy
Теперь я использую свои базы данных sql через ручные строковые соединения вместо того, чтобы подключать их через vb.net мастер баз данных. Я нашел этот метод более достаточным при попытке перейти между базами данных. то, что я пытаюсь сделать, - это установить соединение с выбранным мной набором данных и запустить инструкцию bulkcopy для импорта информации excel.
Dim sqlconn As New SqlConnection(MySQLstring) Dim sqladaptor = New SqlDataAdapter("select * from" + "[" + TreeView1.SelectedNode.Text.ToString + "]", sqlconn) Dim sql As String = "select * from" + "[" + TreeView1.SelectedNode.Text.ToString + "]" Dim sqlcmd As SqlClient.SqlCommand sqlcmd = New SqlClient.SqlCommand(sql, sqlconn) Dim dt As New DataTable Dim ds As New DataSet sqladaptor.Fill(dt) For Each column In ds.Tables(TreeView1.SelectedNode.Text.ToString).Columns sqlBulkCopy.ColumnMappings.Add(column.ColumnName, If(String.IsNullOrEmpty(column.ColumnName), " ", column.ColumnName)) Next
когда я запускаю свой код, я получаю это сообщение об ошибке:
Дополнительная информация: ссылка на объект не установлена на экземпляр объекта. Это сообщение появляется в " ds.Таблицы(Элемента Управления Treeview1.SelectedNode.Текст.Метод toString).Столбцы"
Я не знаю, как получить доступ к набору данных при подключении к sql вручную.
как я могу написать инструкцию, используя строку подключения sql к базе данных?
Что я уже пробовал:
Я пытался вызвать разные таблицы и попробовать импорт, но все они говорят одно и то же. интересно, что это сработало, когда я использовал набор данных, импортированный мастером базы данных, но теперь это не так
NotPolitcallyCorrect
Научитесь пользоваться отладчиком. Ваш набор данных всегда равен нулю, потому что вы ничего с ним не делаете. И ваш запрос не будет работать. А текст - это уже строка, какую возможную пользу, по-вашему, даст вам ToString на строке? Как я уже говорил вам раньше, в интернете должны быть тысячи примеров, на которые вы можете посмотреть, вам просто нужно пойти посмотреть.