2010-02-19 3 views
1

У меня есть лист excel, где я пытаюсь загрузить мой лист excel в sqlserver, имеющий одинаковое имя colum. теперь я не хочу добавлять файлы dll в качестве веб-ссылки в моем проекте. скорее разместите (dll) в папке и динамически вызовите их на стороне .cs. сейчас я делаю вот такКак вставлять значения из листа excel в sqlserver 2005

var assembly = Assembly.LoadFrom (@ "d: \ abc \ microsoft.office.interop.excel.dll");

сейчас в моей странице .cs я должен генерировать это свойство или методы в DLL первенствовать, который я загружен динамически

microsoft.officce.interop.excel.applicationClass первенствовать = нуль

так что после загрузки моих первенствовать дл, динамически мне нужно отправить значение из моего первенствовать лист SQLServer 2005

есть способ для того чтобы достигнуть этого спасибо

+0

Будьте внимательны при использовании dll для совместной работы в офисе. Я не использовал его в последнее время много, но был сожжен с его сбоем и потреблением большого объема памяти на веб-сервере. –

ответ

0

Вы не можете использовать OPENROWSET?
i.e Создайте хранимую процедуру, которая перемещает путь к файлу excel, который вы хотите вставить в данную таблицу. Используйте функцию OPENROWSET внутри, чтобы получить фиксацию листа excel.

0

Другим вариантом является, возможно, использование SSIS для этого (службы интеграции SQL Server). У вас будет больше гибкости и вы можете превратить его в небольшой проект ETL.

Вы также можете использовать код Excel для передачи данных в базу данных либо с помощью кнопки, либо с помощью макроса. Это работает только в том случае, если вы можете управлять файлом Excel.

Просто бросать другие варианты там.

0

Сначала добавьте связанный сервер к экземпляру базы данных ..

Exec sp_dropServer 'myExcel',@droplogins='dropLogins'  
EXEC sp_addlinkedserver 'myExcel', 
     'ACE 12.0', 
     'Microsoft.ACE.OLEDB.12.0', 
     'D:\SAABZX01D\EXCEL_books\ExpressLane\LMI\client carrier conversion.xls', 
     NULL, 
     'Excel 12.0' 
exec sp_linkedServers 

Затем вставить в MYTABLE в yourDatabase

Insert myTable(cola,colb,colc) 
select cola,colb,colc from openQuery(myExcel,'select cola,colb,colc) from sheet1$') 
0

Вы можете открыть Excel файл как базы данных (described here). После этого вы можете загрузить данные в некоторые DataSet (надеюсь, вы знаете, как работать с наборами данных) и загрузить все в базу данных SqlServer или загрузить в некоторые настраиваемые структуры, при необходимости обновите некоторые данные и вставьте их в базу данных SqlServer.

Смежные вопросы