• Excel表导入数据库


    Excel表数据导入到Sql数据库

    代码如下:

    string[] data = new string[3];  //定义一个数组用来用来存储 drd 中读取的数据
    string filePathName = "";       //存储文件名  
    
    //定义一个打开文件对话框并设置相关属性
    OpenFileDialog importFileDialog = new OpenFileDialog();
    importFileDialog.AddExtension = true;
    importFileDialog.CheckFileExists = true;
    importFileDialog.CheckPathExists = true;
    importFileDialog.Filter = "Excel表格文件(97-2003)(*.xls)|*.xls|Excel表格文件|*.xlsx";
    importFileDialog.InitialDirectory = "3";
    importFileDialog.Title = "选择导入的终端信息文件";
    importFileDialog.Multiselect = false;
    
    //判断用户是不是选择了“打开”操作
    if (importFileDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
    {
        filePathName = importFileDialog.FileName;
        string strConn = "";
    
        //判断文件扩展名是否是.xlsx
        if (filePathName.Substring(filePathName.Length - 5).ToLower() == ".xlsx")
        {
            strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source='" + filePathName + "';Extended Properties='Excel 12.0;HDR=YES'";
        }
        //判断文件扩展名是否是.xls
        else if (filePathName.Substring(filePathName.Length - 4).ToLower() == ".xls")
        {
            strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source='" + filePathName + "';Extended Properties='Excel 8.0;HDR=YES;'";
        }
        else
        {
            MessageBox.Show("选择的文件不合法!");
            return;
        }
        OleDbConnection conn = new OleDbConnection(strConn);
        string strSqlConn = "Data Source=(local);Initial Catalog=IMPORT;Persist Security Info=False;User ID=sa; pwd = sa";
        SqlConnection sqlConn = new SqlConnection(strSqlConn);
        sqlConn.Open();
        if (conn.State.ToString() == "Closed")
            conn.Open();
    
        // 读取文件语句
        string strSql = "SELECT * FROM [sheet1$]";
        OleDbCommand cmmd = new OleDbCommand(strSql, conn);
        OleDbDataReader drd = cmmd.ExecuteReader();
    
        //开始读取 drd 中的数据,读取数据要确保Excel中每列的数据为对应该数据库表格中的数据
        //有一点要注意,在读Excel时,是不读第一行数据的。
        //(至于为什么我也不知道,我想可能是特意跳Excel的标题行吧)
        while (drd.Read())
        {
            data[0] = drd[0].ToString();
            data[1] = drd[1].ToString();
            data[2] = drd[2].ToString();
            //*********************这一块可以单独分离出来*********
            //定义插入Sql语句
            //此处我的数据库表中的字段如下
            //[ImportField1],[ImportField2],[ImportField3]
            StringBuilder sbSql = new StringBuilder();
            sbSql.Append("INSERT INTO [tbImport]");
            sbSql.Append(" (");
            sbSql.Append(" [ImportField1]");
            sbSql.Append(",[ImportField2]");
            sbSql.Append(",[ImportField3]");
            sbSql.Append(") VALUES (");
            sbSql.Append(String.Format("'{0}',", data[0]));
            sbSql.Append(String.Format("'{0}',", data[1]));
            sbSql.Append(String.Format("'{0}',", data[2]));
            sbSql.Append(");");  
            SqlCommand sqlCmmd = new SqlCommand(sbSql.ToString(), sqlConn);
            //****************************************************
            sqlCmmd.ExecuteNonQuery(); 
        } 
        conn.Close(); 
        sqlConn.Close(); 
        MessageBox.Show("数据导入成功。"); 
    }
  • 相关阅读:
    MySQL:procedure, function, cursor,handler
    Spring:ApplicationContext (2)
    Dojo: Quick Start
    Linux:常用命令
    Squirrel: 通用SQL、NoSQL客户端
    湖南师范大学邮箱申请及
    一文读懂基因测序技术的前世今生
    一 二 三代测序技术
    浅议基因测序技术的代际:后记
    浅议基因测序技术的代际
  • 原文地址:https://www.cnblogs.com/selway/p/Excel_ImportTo_SqlServer.html
Copyright © 2020-2023  润新知