欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#.NET中如何批量插入大量數(shù)據(jù)到數(shù)據(jù)庫(kù)中

 更新時(shí)間:2015年10月21日 12:02:55   投稿:mrr  
這篇文章主要給大家介紹C#.net中如何批量插入大量數(shù)據(jù)到數(shù)據(jù)庫(kù)中,本文涉及到C#.net中批量插入數(shù)據(jù)到數(shù)據(jù)庫(kù)中方面的內(nèi)容,對(duì)C#.net批量插入數(shù)據(jù)到數(shù)據(jù)庫(kù)中感興趣的朋友可以參考下本篇文章

在WEB項(xiàng)目開(kāi)發(fā)過(guò)程中有時(shí)會(huì)碰到批量插入數(shù)據(jù)到數(shù)或者是將EXCEL文件據(jù)入到數(shù)據(jù)庫(kù)中.為了方便實(shí)現(xiàn)可以先將EXCEL導(dǎo)入到GRIDVIEW中然后一次批量插入.實(shí)現(xiàn)代碼如下:

前臺(tái)代碼

<asp:GridView ID="dgBom" runat="server" AutoGenerateColumns="false" CellPadding="1" CellSpacing="2">
<HeaderStyle BackColor="#ededed" />
  <Columns>
   <asp:TemplateField HeaderText="學(xué)號(hào)">
    <ItemTemplate>
     <asp:TextBox ID="studentnumber" runat="server" Text='<%#Eval("studentnumber") %>' ></asp:TextBox>
    </ItemTemplate>
   </asp:TemplateField>
   <asp:TemplateField HeaderText="學(xué)生姓名">
    <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="導(dǎo)入數(shù)據(jù)" />
  <asp:Button ID="btninsert" runat="server" OnClick="btninsert_Click" Text="插入到數(shù)據(jù)庫(kù)中"/>

后臺(tái)代碼:

//首先在命名空間中加入以下兩行
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 的表名,默認(rèn)值是sheet1
    string strSql = "select * from [" + tableName + "]";
    OleDbCommand objCmd = new OleDbCommand(strSql, objConn);
    OleDbDataAdapter myData = new OleDbDataAdapter(strSql, objConn);
    myData.Fill(ds, tableName);//填充數(shù)據(jù)
    dgBom.DataSource =ds;
    dgBom.DataBind();
    objConn.Close();
    ExcelTable = ds.Tables[tableName];
    int iColums = ExcelTable.Columns.Count;//列數(shù)
    int iRows = ExcelTable.Rows.Count;//行數(shù)
    //定義二維數(shù)組存儲(chǔ) Excel 表中讀取的數(shù)據(jù)
    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表中的數(shù)據(jù)存儲(chǔ)到數(shù)組
        storedata[i, j] = ExcelTable.Rows[i][j].ToString();
      }
    int excelBom = 0;//記錄表中有用信息的行數(shù),有用信息是指除去表的標(biāo)題和表的欄目,本例中表的用用信息是從第三行開(kāi)始
    //確定有用的行數(shù)
    for (int k = 2; k < ExcelTable.Rows.Count; k++)
      if (storedata[k, 1] != "")
        excelBom++;
    if (excelBom == 0)
    {
      Response.Write("<script language=javascript>alert('您導(dǎo)入的表格不合格式!')</script>");
    }
    else
    {
      //LoadDataToDataBase(storedata,excelBom)//該函數(shù)主要負(fù)責(zé)將 storedata 中有用的數(shù)據(jù)寫(xiě)入到數(shù)據(jù)庫(kù)中,在此不是問(wèn)題的關(guān)鍵省略 
    }
  }
  protected void btninsert_Click(object sender, EventArgs e)
  {
    foreach (GridViewRow gv in dgBom.Rows) 
    {
      //我的連接字符串是寫(xiě)在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();
      }
    }
  }

以上內(nèi)容就是本文的全部敘述,希望對(duì)大家學(xué)習(xí)C#.NET中如何批量插入大量數(shù)據(jù)到數(shù)據(jù)庫(kù)中有所幫助。

相關(guān)文章

最新評(píng)論