专家-郭老师 2017-03-30 07:47 采纳率: 100%
浏览 2008
已采纳

c# winform excel导入sqlite数据库,求代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Linq;
using System.Windows.Forms;
using DevExpress.XtraEditors;
using System.Data.OleDb;
using TenderClear.Common;
using TenderClear.BLL.TC01;

namespace TenderClear.UI.Forms.TC01
{
public partial class TC010103Form : DevExpress.XtraEditors.XtraForm
{
public TC010103Form()
{
InitializeComponent();
}
DataTable dt = new DataTable();
DataGridView dgv=new DataGridView();
private void txtExcel_Click(object sender, EventArgs e)
{
//打开excel选择框
OpenFileDialog frm = new OpenFileDialog();
frm.Filter = "Excel文件(*.xls,xlsx)|*.xls;*.xlsx";
if (frm.ShowDialog() == DialogResult.OK)
{

            txtExcel.Text = frm.FileName;
            bind(txtExcel.Text);
        }
    }
    private void bind(string fileName)
    {
        string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +
             "Data Source=" + fileName + ";" +
             "Extended Properties=Excel 8.0;";
        OleDbDataAdapter da = new OleDbDataAdapter("SELECT *  FROM [Sheet1$]", strConn);
        DataSet ds = new DataSet();
        try
        {
            da.Fill(ds);
            dt = ds.Tables[0];
            this.dgv.DataSource = dt;
        }
        catch (Exception err)
        {
            MessageBox.Show("操作失败!" + err.ToString());
        }
    }

    private void simpleButton2_Click(object sender, EventArgs e)
    {         
            if (dgv.Rows.Count > 0)  
            {  
                DataRow dr = null;  
                for (int i = 0; i < dt.Rows.Count; i++)  
                {  
                    dr = dt.Rows[i];  
                    insertToSql(dr);  
                }                 
                MessageBox.Show("导入成功!");  
            }  
            else 
            {  
                MessageBox.Show("没有数据!");  
            }  
        }  
        private void insertToSql(DataRow dr)  
        {  
            //excel表中的列名和数据库中的列名一定要对应  
            string xmlx = dr["XMLX"].ToString();  
            string xmbm = dr["XMXM"].ToString();  
            string xmmc = dr["XMMC"].ToString();  
            string xmdw = dr["XMDW"].ToString();  
             string dydj = dr["DYDJ"].ToString();  
            string zyxf = dr["ZYXF"].ToString();  
            string xmnr = dr["XMNR"].ToString();  
            DateTime kssj = Convert.ToDateTime(dr["KSSJ"].ToString());
            DateTime jssj =  Convert.ToDateTime(dr["JSSJ"].ToString());
            int count=BLL10101.InsertOrUpdate(xmlx,xmbm,xmmc,xmdw,dydj,zyxf,xmnr,kssj,jssj);
        }  
    }  

}

以上是我在网上找的代码,但是有出现错误,求大神们看看。图片说明

  • 写回答

1条回答

  • threenewbee 2017-03-30 16:18
    关注

    oledb只能读excel,写入 excel用npoi

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥50 如何增强飞上天的树莓派的热点信号强度,以使得笔记本可以在地面实现远程桌面连接
  • ¥15 MCNP里如何定义多个源?
  • ¥20 双层网络上信息-疾病传播
  • ¥50 paddlepaddle pinn
  • ¥20 idea运行测试代码报错问题
  • ¥15 网络监控:网络故障告警通知
  • ¥15 django项目运行报编码错误
  • ¥15 请问这个是什么意思?
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services