У меня есть C# приложение WinForms, которое получает информацию из листа Excel и сохраняет ее в моей базе данных, мой код отлично работает на моем P C, но когда я изменил его, возникает ошибка
Система .InvalidOperationException: «Поставщик« Microsoft.ACE.OLEDB.12.0 »не зарегистрирован на локальном компьютере.»
. Я решил эту проблему, изменив платформу проекта с x86 на x64, но когда я запускаю проект с x64, я не могу загрузить много файлов, поэтому мне нужно запустить его на x86. Ребята какие решения?
Rq: Мой код:
String name = "Feuil1";
String constr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" +
textBox_path.Text +
";Extended Properties='Excel 12.0 XML;HDR=YES;';";
OleDbConnection con = new OleDbConnection(constr);
OleDbCommand oconn = new OleDbCommand("Select * From [" + name + "$]", con);
con.Open();
OleDbDataAdapter sda = new OleDbDataAdapter(oconn);
DataTable data = new DataTable();
sda.Fill(data);
dataview1.DataSource = data;
using (SqlConnection connection = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["UR2k_CS.Properties.Settings.StoreConnectionString"].ConnectionString))
{
String query = "INSERT INTO dbo.Stock (RFID,name,refrence,prix,Stockdate) VALUES (@RFID,@name,@refrence,@prix,@Stockdate)";
connection.Open();
for (int i=0;i<dataview1.Rows.Count-1;i++)
{
using (SqlCommand command = new SqlCommand(query, connection))
{
if ((dataview1.Rows[i].Cells[0].Value.ToString()!=null)&&((!checkifexist(dataview1.Rows[i].Cells[0].Value.ToString()))) &&(dataview1.Rows[i].Cells[0].Value.ToString()!=""))
{
command.Parameters.AddWithValue("@RFID", dataview1.Rows[i].Cells[0].Value.ToString());
command.Parameters.AddWithValue("@name", dataview1.Rows[i].Cells[1].Value.ToString());
command.Parameters.AddWithValue("@refrence", dataview1.Rows[i].Cells[2].Value.ToString());
command.Parameters.AddWithValue("@prix", dataview1.Rows[i].Cells[3].Value.ToString());
command.Parameters.AddWithValue("@Stockdate", DateTime.Now);
command.ExecuteNonQuery();
}
}
}
connection.Close();
}