本文介绍了'Microsoft.ACE.OLEDB.12.0'提供程序未注册的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
错误:'Microsoft.ACE.OLEDB.12.0'提供商未在本地计算机上注册。
protected void Button1_Click( object sender,EventArgs e)
{
if (FileUpload1.HasFile)
{
string path = string .Concat((Server.MapPath( 〜/ temp / + FileUpload1.FileName)));
FileUpload1.PostedFile.SaveAs(path);
OleDbConnection OleDbcon = new OleDbConnection( Provider = Microsoft.ACE.OLEDB.12.0; server = + path + ;扩展属性= Excel 12.0;);
OleDbCommand cmd = new OleDbCommand( SELECT * FROM [Sheet1 $],OleDbcon);
OleDbDataAdapter objAdapter1 = new OleDbDataAdapter(cmd);
OleDbcon.Open();
DbDataReader dr = cmd.ExecuteReader();
string connectionString = @ Data Source = .\sqlexpress; Initial Catalog = testdb; User Id = abc; Password = abc123;;
con);
SqlBulkCopy bulkInsert = new SqlBulkCopy(connectionString);
bulkInsert.DestinationTableName = table_temp;
bulkInsert.WriteToServer(dr);
OleDbcon.Close();
Array.ForEach(Directory.GetFiles((Server.MapPath( 〜/ temp /))),File.Delete);
Label1.ForeColor = Color.Green;
Label1.Text = 已成功插入;
}
else
{
Label1.ForeColor = Color.Red;
Label1.Text = 请选择文件;
}
}
}
解决方案
ERROR: The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine.
protected void Button1_Click(object sender, EventArgs e) { if (FileUpload1.HasFile) { string path = string.Concat((Server.MapPath("~/temp/" + FileUpload1.FileName))); FileUpload1.PostedFile.SaveAs(path); OleDbConnection OleDbcon = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;server=" + path + ";Extended Properties=Excel 12.0;"); OleDbCommand cmd = new OleDbCommand("SELECT * FROM [Sheet1$]", OleDbcon); OleDbDataAdapter objAdapter1 = new OleDbDataAdapter(cmd); OleDbcon.Open(); DbDataReader dr = cmd.ExecuteReader(); string connectionString = @"Data Source=.\sqlexpress;Initial Catalog=testdb;User Id=abc; Password=abc123;"; con); SqlBulkCopy bulkInsert = new SqlBulkCopy(connectionString); bulkInsert.DestinationTableName = "table_temp"; bulkInsert.WriteToServer(dr); OleDbcon.Close(); Array.ForEach(Directory.GetFiles((Server.MapPath("~/temp/"))), File.Delete); Label1.ForeColor = Color.Green; Label1.Text = "successfully inserted"; } else { Label1.ForeColor = Color.Red; Label1.Text = "Please select the File"; } } }
解决方案
这篇关于'Microsoft.ACE.OLEDB.12.0'提供程序未注册的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!