Winform下的 Excel导入数据库数据

Winform下的 Excel导入数据库数据

 

/// <summary>
        /// 开始导入
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnSave_Click(object sender, EventArgs e)
        {
            TelImport.CheckForIllegalCrossThreadCalls = false;
            panel1.Visible = true;

            //开启一个线程,导入Excel
            Thread threadImport = new Thread(new ParameterizedThreadStart(ImportExcel));

            threadImport.Start(panel1);
        }

        /// <summary>
        /// 开启线程,导入数据
        /// </summary>
        public void ImportExcel(object panel1)
        {
            OleDbConnection conn = new OleDbConnection();
            try
            {
                conn.ConnectionString = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source=" + txtFilePath.Text + ";Extended Properties='Excel 8.0;HDR=NO;IMEX=1'";
                OleDbDataAdapter adt = new OleDbDataAdapter("select * from [sheet1$]", conn);
                DataTable dtResult = new DataTable();
                adt.Fill(dtResult);
               
                for (int i = 1; i < dtResult.Rows.Count; i++)
                {
                    TelNum objTelNum = new TelNum();

                    if (dtResult.Rows[i][0] != null && dtResult.Rows[i][0] != "")
                    {
                        objTelNum.Org1No = cbxFirstDepart.SelectedValue.ToString();
                        objTelNum.Org2No = cbxSecDepart.SelectedValue.ToString();
                        objTelNum.Org3No = cbxThirdDepart.SelectedValue.ToString();
                        objTelNum.Org4No = cbxFourDepart.SelectedValue.ToString();
                        objTelNum.ProID = Convert.ToInt32(cbxProject.SelectedValue);
                        objTelNum.strTelNum = dtResult.Rows[i][0].ToString();
                        objTelNum.NumberTypeNo = cbxTelType.SelectedValue.ToString();
                        objTelNum.Createdby = User.LoginUser.Userid;
                        objTelNum.Createdon = DateTime.Now;

                        TelNumService objTelNumService = new TelNumService();
                        objTelNumService.InsertTelNum(objTelNum);
                    }
                }

                Panel plPic = (Panel)panel1;
                plPic.Visible = false;
            }
            catch (Exception ex)
            {
                string strError = ex.ToString();
                MessageBox.Show("导入错误,请核对导入文件!");
            }
        }

//有多线程,需要一个Panel

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要将Excel文件导入Winform应用程序中的数据库中,可以按照以下步骤进行操作: 1. 在Winform应用程序中添加一个“导入Excel”按钮,当用户单击该按钮时,弹出一个文件对话框,让用户选择要导入Excel文件。 2. 使用C#代码读取Excel文件中的数据,并将其存储在一个数据表中。 3. 使用ADO.NET连接到数据库,并将数据表中的数据插入到数据库中。 4. 在插入数据时,需要注意数据类型的匹配,以确保数据能够正确地插入到数据库中。 5. 在导入数据完成后,可以显示一个提示框,告诉用户导入操作已经完成。 总之,要将Excel文件导入Winform应用程序中的数据库中,需要使用C#代码读取Excel文件中的数据,并将其插入到数据库中。这需要一些编程技能和经验,但是一旦掌握了这些技能,就可以轻松地完成这个任务。 ### 回答2: Winform是一种基于Windows的应用程序开发平台,它提供了一种快速开发的方式来创建窗体应用程序。当我们需要将Excel中的数据导入数据库时,Winform也可以提供很好的解决方案。 在Winform中,我们可以使用Microsoft Office Excel组件来操作Excel文件,使用ADO.NET来连接数据库,并使用SQL语句将数据插入到数据库中。 具体实现步骤如下: 1. 创建Winform应用程序,添加Microsoft Office Excel组件和ADO.NET组件的引用。 2. 编写代码打开Excel文件并读取数据,可以使用以下代码实现: ``` Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application(); Microsoft.Office.Interop.Excel.Workbook workbook = excel.Workbooks.Open(excelFileName); Microsoft.Office.Interop.Excel.Worksheet worksheet = workbook.Worksheets[1]; Microsoft.Office.Interop.Excel.Range range = worksheet.UsedRange; for (int row = 1; row <= range.Rows.Count; row++) { int column = 1; string data1 = ((Microsoft.Office.Interop.Excel.Range)range.Cells[row, column++]).Text; string data2 = ((Microsoft.Office.Interop.Excel.Range)range.Cells[row, column++]).Text; // ... } ``` 3. 连接数据库并执行插入操作,可以使用以下代码实现: ``` string connectionString = "Data Source=(local);Initial Catalog=DatabaseName;Integrated Security=True"; SqlConnection connection = new SqlConnection(connectionString); connection.Open(); SqlCommand command = new SqlCommand("INSERT INTO TableName (Column1, Column2, ...) VALUES (@value1, @value2, ...)", connection); command.Parameters.AddWithValue("@value1", data1); command.Parameters.AddWithValue("@value2", data2); // ... command.ExecuteNonQuery(); connection.Close(); ``` 4. 最后记得在代码中添加异常处理,充分考虑程序的健壮性和稳定性。 总之,Winform导入Excel数据库并不难,只需要掌握好对Excel和ADO.NET的操作即可。希望这些步骤能对你有所帮助。 ### 回答3: Winform是一个基于Windows平台的应用程序框架,它提供了许多用于创建图形用户界面(GUI)的工具,如按钮、文本框、下拉列表框等,同时也支持与数据库进行交互,这使得开发人员可以方便地导入Excel文件到数据库。 将Excel文件中的数据导入数据库,首先需要以某种方式读取Excel文件中的数据。可以使用第三方开源库比如NPOI或EPPlus,也可以使用Microsoft自带的Office Interop库或ACE OLEDB Provider进行读取操作。 其中,NPOI是在.NET平台上对POI库的重新实现,它支持读取Excel 2003及以上版本的文件,实现简单,性能较好。而EPPlus是一个符合.NET标准的库,它能够支持读取Excel 2007及以上版本的文件,功能更加强大。Office Interop库则是使用COM方式与Excel交互,需要确保本机已经安装有Excel,同时也存在一些不兼容的问题。ACE OLEDB Provider则是微软提供的一种从Office到SQL Server的标准化数据访问方式,但不支持读取Excel的某些数据格式。 一旦读取到Excel文件中的数据,就可以通过ADO.NET或Entity Framework等方式将数据插入到数据库中。ADO.NET提供了一组对象,如SqlConnection、SqlCommand和SqlDataAdapter等,可以直接操作数据库。而Entity Framework则是一种Microsoft提供的ORM工具,它可以将数据库操作抽象成对象操作,减轻了开发人员的负担。 需要注意的是,在进行导入操作时,应该先对数据进行验证,确保数据符合要求,并为不同的数据类型选择正确的转换方式,避免数据类型错误导致的异常。同时,在导入数据时,还应该注意数据的唯一性,避免重复数据的插入。 总的来说,Winform导入Excel数据库操作涉及到数据读取、数据验证、数据库操作等多个方面,需要综合考虑各方面因素,确保数据的正确性和有效性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值