国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

C#.NET中如何批量插入大量數據到數據庫中

2019-10-29 21:36:48
字體:
來源:轉載
供稿:網友

這篇文章主要給大家介紹C#.net中如何批量插入大量數據到數據庫中,本文涉及到C#.net中批量插入數據到數據庫中方面的內容,對C#.net批量插入數據到數據庫中感興趣的朋友可以參考下本篇文章

在WEB項目開發過程中有時會碰到批量插入數據到數或者是將EXCEL文件據入到數據庫中.為了方便實現可以先將EXCEL導入到GRIDVIEW中然后一次批量插入.實現代碼如下:

前臺代碼

 

 
  1. <asp:GridView ID="dgBom" runat="server" AutoGenerateColumns="false" CellPadding="1" CellSpacing="2"
  2. <HeaderStyle BackColor="#ededed" /> 
  3. <Columns> 
  4. <asp:TemplateField HeaderText="學號"
  5. <ItemTemplate> 
  6. <asp:TextBox ID="studentnumber" runat="server" Text='<%#Eval("studentnumber") %>' ></asp:TextBox> 
  7. </ItemTemplate> 
  8. </asp:TemplateField> 
  9. <asp:TemplateField HeaderText="學生姓名"
  10. <ItemTemplate> 
  11. <asp:TextBox ID="studentname" runat="server" Text='<%#Eval("studentname") %>'></asp:TextBox> 
  12. </ItemTemplate> 
  13. </asp:TemplateField> 
  14. </Columns> 
  15. </asp:GridView> 
  16. <asp:FileUpload ID="FileUpload1" runat="server" Font-Italic="False" /> 
  17. <asp:Button ID="btn2" runat="server" OnClick="btn2_Click" Text="導入數據" /> 
  18. <asp:Button ID="btninsert" runat="server" OnClick="btninsert_Click" Text="插入到數據庫中"/> 

后臺代碼:

 

 
  1. //首先在命名空間中加入以下兩行 
  2. using System.Data.SqlClient; 
  3. using System.Data.OleDb; 
  4. protected void btn2_Click(object sender, EventArgs e) 
  5. string filepath = FileUpload1.PostedFile.FileName; 
  6. ReadExcel(filepath, dgBom); 
  7. public void ReadExcel(string sExcelFile, GridView dgBom) 
  8. DataTable ExcelTable; 
  9. DataSet ds = new DataSet(); 
  10. //Excel的連接 
  11. OleDbConnection objConn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + sExcelFile + ";" + "Extended Properties=Excel 8.0;"); 
  12. objConn.Open(); 
  13. DataTable schemaTable = objConn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null); 
  14. string tableName = schemaTable.Rows[0][2].ToString().Trim();//獲取 Excel 的表名,默認值是sheet1 
  15. string strSql = "select * from [" + tableName + "]"
  16. OleDbCommand objCmd = new OleDbCommand(strSql, objConn); 
  17. OleDbDataAdapter myData = new OleDbDataAdapter(strSql, objConn); 
  18. myData.Fill(ds, tableName);//填充數據 
  19. dgBom.DataSource =ds; 
  20. dgBom.DataBind(); 
  21. objConn.Close(); 
  22. ExcelTable = ds.Tables[tableName]; 
  23. int iColums = ExcelTable.Columns.Count;//列數 
  24. int iRows = ExcelTable.Rows.Count;//行數 
  25. //定義二維數組存儲 Excel 表中讀取的數據 
  26. string[,] storedata = new string[iRows, iColums]; 
  27. for(int i=0;i<ExcelTable.Rows.Count;i++) 
  28. for (int j = 0; j < ExcelTable.Columns.Count; j++) 
  29. //將Excel表中的數據存儲到數組 
  30. storedata[i, j] = ExcelTable.Rows[i][j].ToString(); 
  31. int excelBom = 0;//記錄表中有用信息的行數,有用信息是指除去表的標題和表的欄目,本例中表的用用信息是從第三行開始 
  32. //確定有用的行數 
  33. for (int k = 2; k < ExcelTable.Rows.Count; k++) 
  34. if (storedata[k, 1] != ""
  35. excelBom++; 
  36. if (excelBom == 0) 
  37. Response.Write("<script language=javascript>alert('您導入的表格不合格式!')</script>"); 
  38. else 
  39. //LoadDataToDataBase(storedata,excelBom)//該函數主要負責將 storedata 中有用的數據寫入到數據庫中,在此不是問題的關鍵省略  
  40. protected void btninsert_Click(object sender, EventArgs e) 
  41. foreach (GridViewRow gv in dgBom.Rows)  
  42. //我的連接字符串是寫在WEB.CONFIG中的. 
  43. string con = System.Configuration.ConfigurationManager.AppSettings["ConnectionString1"].ToString(); 
  44. SqlConnection conn = new SqlConnection(con); 
  45. SqlCommand cmd = conn.CreateCommand(); 
  46. cmd.CommandType = CommandType.Text; 
  47. cmd.CommandText = "insert into student (studentnumber,studentname) values(@studentnumber,@studentname)"
  48. cmd.Parameters.Add("@studentnumber", SqlDbType.NVarChar, 20); 
  49. cmd.Parameters.Add("@studentname", SqlDbType.NVarChar, 10); 
  50. cmd.Parameters["@studentname"].Value = ((TextBox)gv.FindControl("studentname")).Text; 
  51. cmd.Parameters["@studentnumber"].Value = ((TextBox)gv.FindControl("studentnumber")).Text; 
  52. try 
  53. conn.Open(); 
  54. cmd.ExecuteNonQuery(); 
  55. conn.Close(); 
  56. finally 
  57. if (conn != null
  58. conn.Dispose(); 

以上內容就是本文的全部敘述,希望對大家學習C#.NET中如何批量插入大量數據到數據庫中有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 朔州市| 会同县| 青阳县| 凤台县| 北流市| 高唐县| 万盛区| 婺源县| 如东县| 资中县| 舟曲县| 东阳市| 乐业县| 蒙阴县| 阳信县| 拜泉县| 元氏县| 化隆| 中江县| 商水县| 九台市| 宕昌县| 酒泉市| 岳阳县| 阿巴嘎旗| 南郑县| 安泽县| 扎赉特旗| 广昌县| 体育| 依安县| 抚远县| 迁安市| 湟源县| 清丰县| 福建省| 新蔡县| 眉山市| 澄迈县| 北安市| 吉林省|