此次是要將以下excel檔案裡面的資料寫入火車訂票系統資料庫表裡面。那我們先來看看是什麼樣子的excel資料。
這個檔案裡面共有2個工作表,裡面的資料按上圖樣式排列。接下來看我們要匯入的資料庫表。
上圖有3張表,其中traintype為火車型別表,儲存的是火車的型別,比如普通車,動車組等。
traintrip儲存的是火車的車次,reachstation儲存的是火車的到達站點,由於起始站都是福州,
所以表暫且這麼設計了。
按照上圖excel的格式,如果按常規的資料來源來讀取資料肯定是行不通的,應該採用更靈活的方式來,
所以可以利用程式的迴圈來讀取每一單元格的資訊。通過網上的不斷尋找終於讓我找到乙個開源的讀取
那麼再開始我們的程式**之前先看看我們的程式介面吧。
該介面實現的是先上傳檔案,然後把檔案裡面的資料匯入到資料庫裡面,檔案的路徑暫且儲存到session裡面。
接下來就是**啦:
if (this.isvalid && txtcheckcode.text.tolower() == convert.tostring(session["checkcode"]).tolower())// 新增資料到reachstation
for (int icol = 2; icol < sheet.columns; icol++)
datarow reachstationrow = reachstation.newrow();
reachstationrow["id"] = reachstationid++;
reachstationrow["name"] = sheet.getcell(icol, irow).contents;
reachstationrow["reachtime"] = sheet.getcell(icol, irow + 1).contents;
reachstationrow["hardseatprice"] = sheet.getcell(icol, irow + 2).contents;
reachstationrow["advanceprice"] = common.getadvanceprice(convert.todecimal(sheet.getcell(icol, irow + 2).contents));
reachstationrow["tripid"] = traintripid - 1;
reachstationrow["ticketcount"] = 0;
reachstation.rows.add(reachstationrow);}}
}sdatraintype.update(ds, "traintype");
sdatraintrip.update(ds, "traintrip");
sdareachstation.update(ds, "reachstation");
workbook.close();
lblmsg.text = "匯入資料成功!";}}
catch
}else
此次整個系統的製作需求一直再改,我是弄得筋疲力盡了。不過現在把一些感想記在此處。
首先資料庫的設計,如果涉及到資料庫匯入的話,應該考慮到表id是否要弄成非自增量,否則將給後面的開發造成一定的困難。還有時間字段問題,如果時間為12:00並未有日期的話,涉及到資料庫匯出到excel應該設定為字串型別,而不是datetime型別。
整個系統資料庫設計到多個表資料刪除問題,應該考慮是否新增外來鍵約束,如果有外來鍵約束可能最終造成多個表因為互相關聯導致資料刪除
無法順利進行。
接著是程式的設計,記著不要一直追求**的最簡潔化,該多寫幾句還是得寫,不要怕重複,就像上面那段我把datatable更新到資料庫的
**,我一直想只用乙個sqldataadapter就做完所有的資料操作,我想該多寫幾個sqldataadapter還是得多寫的。以上純屬個人見解。
NIFI 檔案資料寫入hive
目的 nifi使用背景 希望借助nifi監控某個目錄,能夠將被監控目錄下的資料檔案採集並寫入hive中去。nifi提供了puthiveql puthivestreaming putsql三種processor,這三種processor對flowfile的要求也不盡相同。本文選用了如下圖1所示的幾種p...
php獲取excel檔案資料
很簡單就可以實現,下面為大家簡單介紹下 1 require dir phpexcel iofactory.php 23 phpreader new phpexcel reader excel2007 45 判斷檔案型別 6if phpreader canread filepath 13 14 15 ...
matlab寫入和讀取檔案資料
1 初始化乙個三維張量且值為0 b zeros 3,3,3 fid fopen d bookmark tags.txt 1 讀取前n行資料 c textscan fid,f f f n 2 從m 1行開始讀取n行 c textscan fid,f f f n,headerlines m 3 text...