博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Asp.net Excel批量导入数据到SqlServer数据库
阅读量:6530 次
发布时间:2019-06-24

本文共 2048 字,大约阅读时间需要 6 分钟。

下面是自己添加的一个类:在上面的页面中的按钮单击事件中调用。

public class ExcelToMSSql

{
    public static int count = 0;
    public static string error = "";
public ExcelToMSSql()
{
   //
   //TODO: 在此处添加构造函数逻辑
   //
}
     //传入excel文件的路径。
    public static void DataTranf(string execlpath)
    {
        DataTable dtExcel = ExcelToDataTable(@execlpath, "Sheet1");
        for (int i = 0; i < dtExcel.Rows.Count; i++)
        {
            InsertToDB(dtExcel.Rows[i][0].ToString().Trim(), dtExcel.Rows[i][1].ToString().Trim(), dtExcel.Rows[i][2].ToString().Trim(), FormsAuthentication.HashPasswordForStoringInConfigFile(dtExcel.Rows[i][3].ToString().Trim(), "MD5"), dtExcel.Rows[i][4].ToString().Trim(),dtExcel.Rows[i][5].ToString().Trim());

//此处根据excel中字段,自己设定要取用的字段。

        }
    }

    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 conn = new OleDbConnection(strConn))
        {
            conn.Open();
            OleDbDataAdapter adapter = new OleDbDataAdapter(strExcel, strConn);
            adapter.Fill(ds, strSheetName);
            conn.Close();
        }

        return ds.Tables[strSheetName];

    }

//插入记录到SqlServer数据库

    public static void InsertToDB(string studno, string studname,string studsex,string studpwd,string studclass,string middleschool)
    {
        string connstr = System.Configuration.ConfigurationSettings.AppSettings["constr"];
        SqlConnection conn = new SqlConnection(connstr);
        conn.Open();
        string str_insertstudent = "insert into student (userno,username,sex,pwd,classname,address) values('" + studno + "','" + studname + "','" + studsex + "','" + studpwd + "','" + studclass + "','" + middleschool + "')";
        SqlCommand cmd = new SqlCommand(str_insertstudent, conn);
        try
        {
            cmd.ExecuteNonQuery();
            count++;
        }
        catch(Exception e)
        {
            error += e.Message.ToString() + "<br />";
        }
    }

     大同小异,导入到其他数据库只要更改下连接串即可。

    但是此方法似乎好像只能在网站所在的机子上实现批量插入。远程批量插入会不成功,本人的解决办法是先上传excel文件到网站,然后在批量插入即可。

 

转载于:https://www.cnblogs.com/lilenfeng/p/3252705.html

你可能感兴趣的文章
Java内部类的使用小结
查看>>
spring 自定义schema
查看>>
也谈 机器学习到底有没有用 ?
查看>>
Android中布局的特点
查看>>
移动信息化不能延续PC时代的痛
查看>>
Bugzilla部分关键字释义
查看>>
bat 手册 指南 文档 教程 语法
查看>>
多维数组浅谈
查看>>
mysql 字段类型优化建议
查看>>
再译《A *路径搜索入门》之三
查看>>
Intel 80x86指令前缀码
查看>>
spring boot启动退出
查看>>
六款值得推荐的android(安卓)开源框架简介【转】
查看>>
Spring RestTemplate 请求数据乱码
查看>>
OpenGrok介绍
查看>>
1.2 面向对象语言的发展历史
查看>>
1030 Travel Plan
查看>>
《.Net 系列》- DataGridView操作
查看>>
《WinForm 系列》- DBF文件导入导出
查看>>
企业财务战略三大特性解析
查看>>