将Excel的数据导入到SQL 2005现有的表中

我在将Excel的数据导入到SQL的时候老是出现下面的错误:

 

配置选项 'show advanced options' 已从 1 更改为 1。请运行 RECONFIGURE 语句进行安装。
配置选项 'Ad Hoc Distributed Queries' 已从 1 更改为 1。请运行 RECONFIGURE 语句进行安装。
消息 7399,级别 16,状态 1,第 1 行
链接服务器 "(null)" 的 OLE DB 访问接口 "MICROSOFT.JET.OLEDB.4.0" 报错。提供程序未给出有关错误的任何信息。
消息 7303,级别 16,状态 1,第 1 行
无法初始化链接服务器 "(null)" 的 OLE DB 访问接口 "MICROSOFT.JET.OLEDB.4.0" 的数据源对象。

 

我将代码贴出来,望大家帮忙指点一下啊!非常感谢!

 

/// <summary>
        /// 打开文件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button2_Click(object sender, EventArgs e)
        {
            OpenFileDialog ofd = new OpenFileDialog();
            ofd.ShowDialog();
            ofd.Filter = "Excel 文件(*.xls)|";
            ofd.ValidateNames = true;

            ofd.CheckPathExists = true;

            ofd.CheckFileExists = true;

            string filepath = ofd.FileName;
            this.textBox1.Text = filepath;
        }

 

        public void ExecMothod()
        {
            string sql = "EXEC sp_configure 'show advanced options', 1 /n  GO  /n  RECONFIGURE  /n  GO   /n  "+
                        " EXEC sp_configure 'Ad Hoc Distributed Queries', 1   /n    GO   /n    RECONFIGURE   /n    GO  /n   "+
                        " INSERT INTO tb_Lot SELECT * FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0'  ,'Excel 5.0;HDR=YES;DATABASE=" + this.textBox1.Text.Trim() + "',sheet1$)";
            string conStr = "server=.;database=MyTestDB;uid=sa;pwd=123456";
            SqlConnection con = new SqlConnection(conStr);
            SqlCommand cmd = new SqlCommand(sql, con);           
            con.Open();           
            int i= cmd.ExecuteNonQuery();
            if (i > 0)
            {
                MessageBox.Show("数据导入成功");
            }
            else
            {
                MessageBox.Show("Error");
            }
            con.Close();           
        }

        /// <summary>
        /// 导入
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button1_Click(object sender, EventArgs e)
        {          
            string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=Excel 8.0;Data Source=" + this.textBox1.Text.Trim() + ";";
            OleDbConnection conn = new OleDbConnection(strConn);
            conn.Open();

            DataTable dtSchema = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
            DataSet ds = new DataSet();           
            foreach (DataRow dr in dtSchema.Rows)
            {
                string table = dr["TABLE_NAME"].ToString();
                string strExcel = "SELECT * FROM [" + table + "]";
                ds.Tables.Add(table);

                OleDbDataAdapter myCommand = new OleDbDataAdapter(strExcel, conn);
                myCommand.Fill(ds, table);
            }
            ExecMothod();
            conn.Close();
            //KillProcess();

        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值