zoukankan      html  css  js  c++  java
  • Convert Excel data to MDB file

    所需组件:

    microsoft ado ext. 2.8 for ddl and security 或者更新的组件。

    添加:

    using ADOX;
    using System.Runtime.InteropServices;
    using System.IO;

    然后利用OleDbCommand组件,设置其2个链接,一个链接负责查找并打开excel数据源,另一个链接负责将数据源插入到MDB文件中。

    操作页面:

    后台源码:

      private void button1_Click(object sender, EventArgs e)
            {
                var MDbPath = this.txtMDBPath.Text;
    
                if (File.Exists(MDbPath) == false)
                {
                    ADOX.Catalog catalog = new ADOX.Catalog(); dynamic cn = null;
    
                    try
                    {
                        cn = catalog.Create(string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};", MDbPath));
                    }
                    finally
                    {
                        if (cn != null)
                        {
                            Marshal.FinalReleaseComObject(cn);
                        }
                        Marshal.FinalReleaseComObject(catalog);
                    }
    
                    string excelPath = this.txtExcelPath.Text;
                    string excelConnection = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties="Excel 8.0;HDR=YES"", excelPath);
    
                    using (System.Data.OleDb.OleDbConnection AccessConn = new System.Data.OleDb.OleDbConnection(excelConnection))
                    {
                        AccessConn.Open();
    
                        string insertCommandText = string.Format("SELECT * INTO [MS Access;DATABASE={0}].[Sheet1] from [Sheet1$];", MDbPath);
    
                        using (System.Data.OleDb.OleDbCommand AccessCommand = new System.Data.OleDb.OleDbCommand(insertCommandText, AccessConn))
                        {
                            AccessCommand.ExecuteNonQuery();
                        }
                        AccessConn.Close();
                    }
                }
                MessageBox.Show("数据写入成功。");
            }

    注意:insertCommandText中数据源链接部分必须写:DATABASE=...,不能写Data Source=...,否则会出现“表已经存在”的异常。

  • 相关阅读:
    技术债务墙:一种让技术债务可见并可协商的方法
    墙裂推荐
    shell 脚本通过Webhook 发送消息到微信群
    关于中医的一段对话 [ZZ] -- 思维训练故事
    应用深度神经网络预测学生期末成绩
    Python中的模块引用机制
    批量修改含空格的文件名「Linux」
    Markdown数学公式语法
    批处理修改IP
    FTD团队目录
  • 原文地址:https://www.cnblogs.com/jizhong/p/4203397.html
Copyright © 2011-2022 走看看