继续有这个异常System.Data.OleDb.OleDbException(0x80004005):?

时间:2014-07-22 09:19:13

标签: c# sql excel visual-studio-2012 oledb

我正在使用Visual Studio在c#中开发一个非常简单的程序,它只需从Excel工作表中提取数据并将其传输到数据库(只有一个表),使用MySql工作我只是将文件保存为CSV和然后将它们导入我的数据库,但我有一个很大的问题,即编码UTF8,我有很多法语字符和阿拉伯语,只是显示为随机字符,所以我回到了OleDb,但它保持shong例外现在我被困在这个:System.Data.OleDb.OleDbException(0x80004005) 我试图将运行配置更改为x86但没有(注意我使用的是Windows 8 X64)。它是一个积极的ISAM问题。

请帮帮我。

这是我的代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Excel = Microsoft.Office.Interop.Excel;
using System.Reflection;
using System.IO;
using System.Data.OleDb;

namespace testoledb

{
    public partial class Form1 : Form
    {
        DataSet OleDs = new DataSet();
        OleDbDataAdapter OleAdapter = new OleDbDataAdapter();
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        private void openFileDialog1_FileOk(object sender, CancelEventArgs e)
        {

        }

        private void upload_excl_Click(object sender, EventArgs e)
        {
            string path = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
            path = Path.Combine(path, "AGENDA.xlsx");

            string OleConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source="+path+@";Extend Properties=Excel 12.0 Macro;MDR=Yes;ImportMixedTypes=Text;TypeGuessRows=0"; //,HDR=Yes;IMEX=1""";

            OleDbConnection OleConn = new OleDbConnection(OleConnectionString);

            string OleStrCmd = "select * from [SHeet1$A1:H330]";

            OleDbCommand OleCmd = new OleDbCommand(OleStrCmd, OleConn);

            try
            {
                OleConn.Open();
                OleDs.Clear();
                OleAdapter.SelectCommand = OleCmd;
                OleAdapter.Fill(OleDs);
                dataGridView1.DataSource = OleDs.Tables[0];
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());

            }
            finally
            {
                OleConn.Close();
            }
        }
    }
}

0 个答案:

没有答案