Excel导入SQL数据库

本文提供了一个将Excel文件中的数据导入到SQL数据库的具体实现方案。通过C#代码示例展示了如何读取Excel文件并将其转换为DataTable,再将DataTable中的数据逐条插入到SQL数据库中。

环境:ASP+EXCEL+SQL

 public static void DataTableToDB()
    {
        string _strExcelFileName = @"D:/Nili.xls";
        DataTable dtExcel = ExcelToDataTable(_strExcelFileName, "Sheet1");
        for (int i = 0; i < dtExcel.Rows.Count; i++)
        {
            InsertDataToAccess(dtExcel.Rows[i][0].ToString(), dtExcel.Rows[i][1].ToString(),dtExcel.Rows[i][2].ToString());
        }
    }


    public static DataTable ExcelToDataTable(string strExcelFileName, string strSheetName)
    {
        string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + strExcelFileName + ";" + "Extended Properties=Excel 5.0;";
        string strExcel = string.Format("select * from [{0}$]", strSheetName);
        DataSet ds = new DataSet();

        using (OleDbConnection con = new OleDbConnection(strConn))
        {
            con.Open();
            OleDbDataAdapter adapter = new OleDbDataAdapter(strExcel, strConn);
            adapter.Fill(ds, strSheetName);
            con.Close();
        }

        return ds.Tables[strSheetName];
    }


    public static void InsertDataToAccess(string sFunctionID, string sPerentFunctionID,string sFunctionName)
    {
        SqlConnection con = new SqlConnection(ConfigurationManager.AppSettings["Conn"]);
       con.Open();

       string strInsertString = "INSERT INTO PWP_Function VALUES (@FunctionID,@PerentFunctionID,@FunctionName)";
       SqlCommand cmd = new SqlCommand(strInsertString, con);
       cmd.Parameters.Add("@FunctionID", SqlDbType.VarChar, 20);
       cmd.Parameters["@FunctionID"].Value = sFunctionID;
       cmd.Parameters.Add("@PerentFunctionID", SqlDbType.VarChar, 20);
       cmd.Parameters["@PerentFunctionID"].Value = sPerentFunctionID;
       cmd.Parameters.Add("@FunctionName", SqlDbType.VarChar, 20);
       cmd.Parameters["@FunctionName"].Value = sFunctionName;

        cmd.ExecuteNonQuery();
        con.Close();
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值