C#.NET中如何批量插入大量数据到数据库中

 更新时间:2015年10月21日 12:02:55   投稿:mrr  
这篇文章主要给大家介绍C#.net中如何批量插入大量数据到数据库中,本文涉及到C#.net中批量插入数据到数据库中方面的内容,对C#.net批量插入数据到数据库中感兴趣的朋友可以参考下本篇文章

在WEB项目开发过程中有时会碰到批量插入数据到数或者是将EXCEL文件据入到数据库中.为了方便实现可以先将EXCEL导入到GRIDVIEW中然后一次批量插入.实现代码如下:

前台代码

<asp:GridView ID="dgBom" runat="server" AutoGenerateColumns="false" CellPadding="1" CellSpacing="2">
<HeaderStyle BackColor="#ededed" />
  <Columns>
   <asp:TemplateField HeaderText="学号">
    <ItemTemplate>
     <asp:TextBox ID="studentnumber" runat="server" Text='<%#Eval("studentnumber") %>' ></asp:TextBox>
    </ItemTemplate>
   </asp:TemplateField>
   <asp:TemplateField HeaderText="学生姓名">
    <ItemTemplate>
     <asp:TextBox ID="studentname" runat="server" Text='<%#Eval("studentname") %>'></asp:TextBox>
    </ItemTemplate>
   </asp:TemplateField>
  </Columns>
</asp:GridView>
  <asp:FileUpload ID="FileUpload1" runat="server" Font-Italic="False" />
  <asp:Button ID="btn2" runat="server" OnClick="btn2_Click" Text="导入数据" />
  <asp:Button ID="btninsert" runat="server" OnClick="btninsert_Click" Text="插入到数据库中"/>

后台代码:

//首先在命名空间中加入以下两行
using System.Data.SqlClient;
using System.Data.OleDb;
protected void btn2_Click(object sender, EventArgs e)
  {
    string filepath = FileUpload1.PostedFile.FileName;
    ReadExcel(filepath, dgBom);
  }
  public void ReadExcel(string sExcelFile, GridView dgBom)
  {
    DataTable ExcelTable;
    DataSet ds = new DataSet();
    //Excel的连接
    OleDbConnection objConn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + sExcelFile + ";" + "Extended Properties=Excel 8.0;");
    objConn.Open();
    DataTable schemaTable = objConn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);
    string tableName = schemaTable.Rows[0][2].ToString().Trim();//获取 Excel 的表名,默认值是sheet1
    string strSql = "select * from [" + tableName + "]";
    OleDbCommand objCmd = new OleDbCommand(strSql, objConn);
    OleDbDataAdapter myData = new OleDbDataAdapter(strSql, objConn);
    myData.Fill(ds, tableName);//填充数据
    dgBom.DataSource =ds;
    dgBom.DataBind();
    objConn.Close();
    ExcelTable = ds.Tables[tableName];
    int iColums = ExcelTable.Columns.Count;//列数
    int iRows = ExcelTable.Rows.Count;//行数
    //定义二维数组存储 Excel 表中读取的数据
    string[,] storedata = new string[iRows, iColums];
    for(int i=0;i<ExcelTable.Rows.Count;i++)
      for (int j = 0; j < ExcelTable.Columns.Count; j++)
      {
        //将Excel表中的数据存储到数组
        storedata[i, j] = ExcelTable.Rows[i][j].ToString();
      }
    int excelBom = 0;//记录表中有用信息的行数,有用信息是指除去表的标题和表的栏目,本例中表的用用信息是从第三行开始
    //确定有用的行数
    for (int k = 2; k < ExcelTable.Rows.Count; k++)
      if (storedata[k, 1] != "")
        excelBom++;
    if (excelBom == 0)
    {
      Response.Write("<script language=javascript>alert('您导入的表格不合格式!')</script>");
    }
    else
    {
      //LoadDataToDataBase(storedata,excelBom)//该函数主要负责将 storedata 中有用的数据写入到数据库中,在此不是问题的关键省略 
    }
  }
  protected void btninsert_Click(object sender, EventArgs e)
  {
    foreach (GridViewRow gv in dgBom.Rows) 
    {
      //我的连接字符串是写在WEB.CONFIG中的.
      string con = System.Configuration.ConfigurationManager.AppSettings["ConnectionString1"].ToString();
      SqlConnection conn = new SqlConnection(con);
      SqlCommand cmd = conn.CreateCommand();
      cmd.CommandType = CommandType.Text;
      cmd.CommandText = "insert into student (studentnumber,studentname) values(@studentnumber,@studentname)";
      cmd.Parameters.Add("@studentnumber", SqlDbType.NVarChar, 20);
      cmd.Parameters.Add("@studentname", SqlDbType.NVarChar, 10);
      cmd.Parameters["@studentname"].Value = ((TextBox)gv.FindControl("studentname")).Text;
      cmd.Parameters["@studentnumber"].Value = ((TextBox)gv.FindControl("studentnumber")).Text;
      try
      {
        conn.Open();
        cmd.ExecuteNonQuery();
        conn.Close();
      }
      finally
      {
        if (conn != null)
          conn.Dispose();
      }
    }
  }

以上内容就是本文的全部叙述,希望对大家学习C#.NET中如何批量插入大量数据到数据库中有所帮助。

相关文章

  • C#实现压缩pdf文件的示例代码

    C#实现压缩pdf文件的示例代码

    PDF 文件如果文件太大则会影响传输效果同时也会占用过多磁盘空间,所以这篇文章主要为大家详细介绍了如何使用C#实现有效地压缩 PDF 文件,需要的可以参考下
    2023-11-11
  • 聊一聊C#接口问题 新手速来围观

    聊一聊C#接口问题 新手速来围观

    聊一聊C#接口问题,新手速来围观,一个通俗易懂的例子帮助大家更好的理解C#接口问题,感兴趣的小伙伴们可以参考一下
    2016-08-08
  • 在C#使用字典存储事件示例及实现自定义事件访问器

    在C#使用字典存储事件示例及实现自定义事件访问器

    这篇文章主要介绍了在C#使用字典存储事件示例及实现自定义事件访问器的方法,是C#事件编程中的基础知识,需要的朋友可以参考下
    2016-02-02
  • c#读取文件详谈

    c#读取文件详谈

    你平时是怎么读取文件的?使用流读取。是的没错,C#给我们提供了非常强大的类库(又一次吹捧了.NET一番)
    2013-09-09
  • C#判断某个软件是否已安装实现代码分享

    C#判断某个软件是否已安装实现代码分享

    这篇文章主要介绍了C#判断某个软件是否已安装实现代码分享,本文直接给出实现代码,需要的朋友可以参考下
    2015-06-06
  • C# HTTP认证方式详解与代码实现

    C# HTTP认证方式详解与代码实现

    在C#中,HTTP认证是客户端与服务器之间进行身份验证的一种机制,常见的HTTP认证方式包括:Basic认证、Digest认证、OAuth、Bearer Token等,下面我们将从工作原理、优缺点对比、代码实现、案例实战四个方面详细介绍这些认证方式,需要的朋友可以参考下
    2025-03-03
  • C#图像重新着色的方法

    C#图像重新着色的方法

    这篇文章主要介绍了C#图像重新着色的方法,涉及C#中SetRemapTable方法替换颜色的相关使用技巧,需要的朋友可以参考下
    2015-06-06
  • C#中Byte转换相关的函数

    C#中Byte转换相关的函数

    这篇文章主要介绍了C#中Byte转换相关的函数介绍,非常具有参考借鉴价值,特此分享到脚本之家平台供大家学习
    2016-05-05
  • C#设计模式之单例模式实例讲解

    C#设计模式之单例模式实例讲解

    这篇文章主要介绍了C#设计模式之单例模式实例讲解,本文讲解了单例模式的定义、单例模式的优缺点,需要的朋友可以参考下
    2014-10-10
  • 详解C#的设计模式编程之抽象工厂模式的应用

    详解C#的设计模式编程之抽象工厂模式的应用

    这篇文章主要介绍了C#的设计模式编程之抽象工厂模式的应用,注意区分一下简单工厂模式、工厂方法模式和抽象工厂模式概念之间的区别,需要的朋友可以参考下
    2016-02-02

最新评论