나는 100 개의 엑셀 파일을 가지고 있습니다. 각 파일에서 SQL 서버에 삽입 할 행이 하나 필요합니다. 이 자동 필요하지만 궁극적으로 응용 프로그램에서 asp.net 또는 매크로를 Excel 경우 상관 없어. 아이디어가 있으시면 알려주세요.asp.net 4.0은 명령 행 응용 프로그램에서 2010 년을 능가하지 못합니다. 드라이버를 설치 한 후에도 드라이버를 찾을 수 없습니다.
문제 나는 다음 asp.net 4.0 명령 줄 응용 프로그램 코드를 작성 오류를 가지고 다음 'Microsoft.Ace.OleDb.4.0'공급자는 로컬 컴퓨터에 등록되어 있지 않습니다.
시도
나는 마이크로 소프트 액세스 데이터베이스 엔진 2010 재배포, ( http://www.microsoft.com/en-us/download/details.aspx?id=13255) 내 상자에 대한 자세한 ODBC 드라이버는 더있다을 설치 한 후. 이전과 마찬가지로 SQL 드라이버.내 상자는 x64이지만 x86 용 Microsoft Access 데이터베이스 엔진 2010 재배포 가능 파일을 설치하기 위해 x86 사무실이 설치되어 있습니다.
또한 레지스트리를 확인했으며 SQL 서버 드라이버가 아닌 드라이버는 볼 수 없습니다.
내가 읽은 몇 가지 기사 : 나는 드라이버가 될 때까지
The 'Microsoft.ACE.OLEDB.12.0' provider is not registered in the local machine
내가 아래에있는 내 코드를 포함거야 동안, 나는 그것이 차이를 만드는 생각하지 않는다 -
public void ImportExcelFilesForPieChart()
{
List<DataTable> listDataTables = new List<DataTable>();
List<CompanyInfo> newlist = new List<CompanyInfo>();
string sheetName = "Output";
string[] fileList = Directory.GetFiles(dropBoxExcelLocation);
foreach (string filename in fileList)
{
DataTable dt = new DataTable();
string connectionString = string.Format("Provider=Microsoft.Ace.OleDb.4.0;data source={0};Extended Properties=Excel 8.0;HDR=No;IMEX=1", dropBoxExcelLocation + filename);
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
string strSQL = String.Format("SELECT 4A, 4B, 4C, 4D, 4E, 4F FROM [{0}$]", sheetName); //[A4:F4]";
OleDbCommand objCmd = new OleDbCommand(strSQL, connection);
connection.Open();
using (OleDbDataAdapter da = new OleDbDataAdapter(strSQL, connection))
{
da.Fill(dt);
listDataTables.Add(dt);
}
}
}
}
IIS가 상자의 x64에서 실행 중입니까? –
IIS에서 실행 중이 아니며 콘솔 앱으로 실행 중입니다. – DFBerry