1. 程式人生 > >按照一定的規格將XML檔案中的內容批量匯入至資料庫中

按照一定的規格將XML檔案中的內容批量匯入至資料庫中

一、前臺點選按鈕
<li>
       asp:Button ID="ImportMember" runat="server" CssClass="btn btn-primary" Text="匯入會員" />
</li>
二、後臺按鈕宣告、編輯點選事件(展示的程式碼為將表格資料寫入資料庫,註釋掉的程式碼為將表格資料寫入txt文件)
protected Button ImportMember;
protected override void OnInitComplete(EventArgs e)
        {
            base.OnInitComplete(e);
            //一鍵匯入會員           
        }
private void ImportMember_Click(object sender, EventArgs e)
        {
            StringBuilder sbr = new StringBuilder();
            DataTable dt = new DataTable();
            dt.Columns.Add("ID", Type.GetType("System.String"));
            dt.Columns.Add("UserId", Type.GetType("System.String"));
            dt.Columns.Add("UserName", Type.GetType("System.String"));
            dt.Columns.Add("CommissionType", Type.GetType("System.String"));
            dt.Columns.Add("Amount", Type.GetType("System.String"));
            dt.Columns.Add("StarTime", Type.GetType("System.String"));
            string filename = System.Web.HttpContext.Current.Server.MapPath(Globals.ApplicationPath + "/myxls.xls");
            //using (FileStream fs = File.OpenRead(filename))
            using (FileStream fs = File.OpenRead(@"c:/myxls.xls"))   //開啟myxls.xls檔案
            {
                HSSFWorkbook wk = new HSSFWorkbook(fs);   //把xls檔案中的資料寫入wk中
                for (int i = 0; i < wk.NumberOfSheets; i++)  //NumberOfSheets是myxls.xls中總共的表數
                {
                    ISheet sheet = wk.GetSheetAt(i);   //讀取當前表資料
                    for (int j = 0; j <= sheet.LastRowNum; j++)  //LastRowNum 是當前表的總行數
                    {
                        IRow row = sheet.GetRow(j);  //讀取當前行資料
                        if (row != null)
                        {
                            DataRow dr = dt.NewRow();
                            //sbr.Append("-------------------------------------\r\n"); //讀取行與行之間的提示界限
                            for (int k = 0; k <= row.LastCellNum; k++)  //LastCellNum 是當前行的總列數
                            { 
                                ICell cell = row.GetCell(k);  //當前表格
                                if (cell != null)
                                {
                                    sbr.Append(cell.ToString());   //獲取表格中的資料並轉換為字串型別  
                                    
                                    dr[k+1] = cell.ToString(); 
                                }
                            }
                            dt.Rows.Add(dr);
                        }
                    }
                }
            }
            dt.TableName = "Hishop_ceshi";
            MemberDao member = new MemberDao();
            //將新建的表批量高效的存入資料庫中
            if (!member.BulkToDB(dt))
            {
                IDictionary<string, string> param = new Dictionary<string, string>();
                param.Add("secCommission", DateTime.Now.ToString());
                param.Add("secCommissionError", "執行失敗!");
                //將鍵值對寫入錯誤日誌中
                Globals.WriteLog(param, "", "", "", "SecCommission");
            }
	else
            {
                this.ShowMsg("匯入成功", true);
            }
            //sbr.ToString();
            //using (StreamWriter wr = new StreamWriter(new FileStream(@"c:/myText.txt", FileMode.Append)))  //把讀取xls檔案的資料寫入myText.txt檔案中
            //{
            //    this.ShowMsg("匯入成功", true);
            //    wr.Write(sbr.ToString());
            //    wr.Flush();
            //}
        }
三、其他呼叫方法
public bool BulkToDB(DataTable dt)
        {
            Boolean rls = false;
            if (dt.Rows.Count == 0)
            {
                return rls;
            }
            SqlConnection sqlConn = new SqlConnection(ConfigurationManager.ConnectionStrings["HidistroSqlServer"].ConnectionString);
            SqlBulkCopy bulkCopy = new SqlBulkCopy(sqlConn);
            bulkCopy.DestinationTableName = dt.TableName;
            bulkCopy.BatchSize = dt.Rows.Count;
            try
            {
                sqlConn.Open();
                if (dt != null && dt.Rows.Count != 0)
                    bulkCopy.WriteToServer(dt);
                rls = true;
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                sqlConn.Close();
                if (bulkCopy != null)
                    bulkCopy.Close();              
            }
            return rls;
        }
四、引用Npoi.dll檔案
詳見“讀取目標檔案”中的dll檔案(C:\Users\Administrator\Desktop\ASP.NET基礎知識\程式筆記\讀取目標檔案\bin\.net 4.0)內的三個檔案

相關推薦

按照一定規格XML檔案內容批量匯入資料庫

一、前臺點選按鈕 <li> asp:Button ID="ImportMember" runat="server" CssClass="btn btn-primary" Text="匯入會員" /> </li> 二、後臺按鈕宣告、編

excel檔案的資料匯入資料庫的步驟

//1,在控制請中通過MultipartHttpServlerRequest multipartFiles獲取上傳的檔案 multipartFile file = multipartFiles.getFiles("file");//引數file是前端input上傳檔案標籤的name屬性;

JavaExcel表格資料匯入資料庫的表

        上一節介紹了Java將資料庫表中資料匯出至Excel表格,那麼本節來介紹它的逆過程,也就是將Excel表格中的資料逐行匯入資料庫中的表中,依然需要使用Apache的POI,上一節已經說過也附了這個jar包的下載地址,這一節就不過多的說,直接講如

Xml檔案遞迴載入到TreeView

  #region 【通過XDocument的方式將Xml檔案遞迴到TreeView控制元件中】   //讀取Xml檔案(XDocument)   //1.載入Xml檔案   XDocument  document=XDoument.Load("檔名稱.xml");   //2.先獲取跟節點

如何XML檔案匯入Excel

如下圖所示為一個規範的XML檔案,在Excel中可以將規範的XML檔案匯入到Excel成為規範的表格。具體有如下幾種方法:    

java實現檔案內容匯入資料庫

1、檔案格式形如:6|1|2|3|14 2、寫一個ctl檔案,專案中此檔案也可以從資料庫讀取值寫入到檔案中。 檔案內容如下: LOAD DATA infile 'C:\file\local\A

設定oracle的blob欄位,xml檔案寫入到資料庫

http://hi.baidu.com/net1979/blog/item/1829e14ee7d26c0db2de0569.html可以將二進位制大物件 (BLOB) 作為二進位制或字元資料寫入資料庫,具體視資料來源的

如何xml檔案轉化為Bitmap

一、獲取windownwidth int windowWidth = MyApplication.getWindowWidth(); 二、將佈局檔案轉化成Bitmap public Bitmap getScrollViewBitmap(RelativeLayout relativeLay

XML檔案寫入文件

public static void main(String[] args) throws Exception { //建立一個空的Document物件 Document doc = DocumentHelper.createDocument(); //建立一個根元素 Element

使用SQLXMLXML檔案對映到關係資料庫

1. My Computer-->System Properties-->Advanced-->Environment Variables add D:/Program Files/Microsoft Visual Studio 8/SDK/v2.0/Bin/ to pa

python處理csv檔案1內容修改後寫入到csv2檔案

我這裡的方法或許不是很好,主要做法是使用列表和字典進行轉換,感覺很繁瑣,但是也是一種方法。 如果有大神有更好的方法,請留言。 # -*- coding:utf-8 -*- #author:zgd import pandas import csv # with open("url_fea

通過pythonxml檔案轉換成html檔案

#資料型別的轉換 def main():    maxwidth = 100  #用於規範字段的長度    print_start()    count=0    while True:        try:            line =input()            if count == 0

批處理替換xml檔案指定內容

由於常常需要切換IP地址的配置檔案,多個檔案修改,其實最簡單的就是edittext++ 查詢替換 但是有的時候就是抽風,閒的蛋疼,想編寫一個windows批處理檔案進行修改,想想應該挺小菜的,網上應該容易找的到。。 萬萬沒想到。。。 記下來,萬一有誰和我一樣抽風...,提供

反編譯apk檔案,獲取strings.xml檔案內容——使用apktool反編譯

現在通過AXMLPrinter2.jar獲取AndroidManifest.xml內容時,發現有些值是放在strings.xml中,而strings.xml檔案是被打包在resources.arsc檔案裡面,在網上找了下,說是用arsceditor進行編輯,但是我下載了個arsceditor時(下載地址:ht

文字檔案內容或者文字儲存成圖片

呼叫方法: ConvertTextFileToImage(Server.MapPath("~/Log.txt"),Server.MapPath("~/Log.png")); 實現程式碼: void ConvertTextFileToImage(String textF

Java如何解析某個目錄下xml檔案XML檔案轉換為報表資料來源?

在Java開發的報表工具FineReport中,假如在目錄下儲存了幾個XML檔案,希望把XML檔案轉換為報表資料來源,同時希望展示動態xml資料來源的效果,這時可通過引數的方式,動態獲取xml欄位中的值再作為報表資料來源。Northwind.xml記錄資料格式如下:<?

java.nio一個檔案內容寫入到另一個的檔案簡單例子

/**  * 將資料從一個通道複製到另一個通道或從一個檔案複製到另一個檔案  * @author Administrator  *  */ public class ChannelDemo {public static void main(String[] args) th

javaweb專案檔案上傳資料庫的大小限制

首先將struts.xml中新增上配置 <!-- 配置檔案上傳大小 --><constant name="struts.multipart.maxSize" value="671088640"></constant>64M 然後上傳大檔案出現: Struts Prob

Excel或者Txt檔案的資料匯入Oracle資料庫

使用SQL*Loader前提必須oracle資料中目的表已經存在大體步驟如下:     1   將excle檔案另存為一個新檔案比如檔名為text.txt,檔案型別選文字檔案(製表符分隔),這裡選擇型別為csv(逗號分隔)也行,但是在寫後面的control.ctl時要將欄位終

帆軟cpt檔案的報表嵌入到java程式碼的jsp檔案

將FineReport 整合到自己的web專案中,生成報表,可以方便快捷的和自己的專案融合在一起。簡化了利用poi的匯出遇到的問題。 1、首先在FR中建立好一個模板  例如:我的這張模板是連線的自己的資料庫       2、將FR軟體下的jar包新增到自己的專案中