Member 13473067 Ответов: 1

Как вставить несколько листов в один файл excel в SQL server в VB


Я должен импортировать один файл excel, содержащий 7 листов, в sql server в vb. Прямо сейчас у меня есть проблема, которая заключается в том, что SQL-оператор просто читает и вставляет только один лист в базу данных. Итак, как я могу вставить все 7 листов в базу данных с помощью vb?



If (rblData.Элемент.Значение = " ОФВ") Затем

Использование sSourceConnection
'Запрос для выбора всех данных в загруженном файле
Dim sql As String = String.Формат ("Select * FROM [Sheet1$]")
Дим команда как новый объект oledbcommand(SQL, то sSourceConnection)

sSourceConnection.Открыть()
'Sqldatareader reader = myCommand.Метода executereader();
Использование dr в качестве команды OleDbDataReader=.Метода executereader()
Использование bulkCopy в качестве нового SqlBulkCopy(sDestConstr)
массовое копирование.DestinationTableName = "ФЭВ"
переборка.ColumnMappings.Добавить("часть", "часть")
переборка.ColumnMappings.Добавить("серийный номер", "serial_no")
переборка.ColumnMappings.Добавить("оригинальный серийный #", "original_serial_no")
переборка.ColumnMappings.Добавить("расположение ломом", "scrap_location")
переборка.ColumnMappings.Добавить("причина", "scrap_reason")
переборка.ColumnMappings.Добавить("сдвиг", "сдвиг")
переборка.ColumnMappings.Добавить("день", "день")
переборка.ColumnMappings.Добавить("количество клеток", "qty_cell")
переборка.ColumnMappings.Добавить("идентификатор ЦДЛ", "zdl_id")


переборка.WriteToServer(dr)

fillFEVInfo()

lblmsg.Text = " данные дефекта ОФВ введены успешно!!!"

Конец Использования
Конец Использования
Конец Использования
Конец, Если

Что я уже пробовал:

Прямо сейчас его просто успешно вставляют в один лист.

Karthik_Mahalingam

есть ли у всех листов одинаковые имена столбцов?

Member 13473067

я переименовываю Лист1, Лист2 и так далее.Поэтому я хочу, чтобы все 7 листов были импортированы в базу данных. я использую vb. Да, все листы имеют одинаковое имя столбца.

Karthik_Mahalingam

имена таблиц?

1 Ответов

Рейтинг:
9

Karthik_Mahalingam

Определите словарь с ключом как sheetName и ценность как TableName, Добавьте все элементы имя листа-имя таблицы в словарь
Loop элементы в словаре, чтобы получить имя листа и имя таблицы и передать его как

Dim dictMapping As Dictionary(Of String, String) = New Dictionary(Of String, String)
dictMapping.Add("Sheet1$", "TableName1")
dictMapping.Add("Sheet2$", "TableName2")
.
.

For Each item In dictMapping
    Dim sheetName As String = item.Key
    Dim tableName As String = item.Value
    Dim sql As String = ("select * from " + sheetName)
     . your code
     .
     .

    bulkCopy.DestinationTableName = tableName
Next