摘 要:在信息管理系統中,數據的導入功能會極大提高軟件可用性,而良好的數據導入功能將會節約使用成本,提高工作效率。該文結合軟件開發項目《綜合實操管理系統》的導入程序設計,在VISUAL STADIO環境下采用C#語言對導入程序的算法及代碼進行設計和分析,為軟件開發人員快速開發數據導入模塊或功能提供一定的思路和方法。
關鍵詞:ASP.NET C# 控件 SQL
中圖分類號:G424 文獻標識碼:A 文章編號:1672-3791(2015)12(a)-0006-02
在應用軟件開發中,常常涉及數據庫應用技術。數據庫中的數據可以通過逐條錄入的方式獲得。但當已經儲備了大量現成電子的數據時,再通過逐條錄入方式就顯得費時費力,甚至不排除所在錄入數據過程中頻繁出錯,影響了數據一致性和可靠性,所以導入已有的數據成為了應用系統必備功能之一。在數據導入過程中,程序可以較好地控制數據類型、長度,自動檢查數據是否合理、是否沖突等。在數據的導入時,需要導入的可以是文本文件、WORD文件、EXCEL表格甚至其它的數據表格等,由于原始數據格式的不同,程序設計方法也不盡相同。由于現在辦公中所用到的很多數據是EXCEL電子表格采集或存儲的,該文以EXCEL文件數據源為例,結合所開發的《綜合實操管理系統》,采用ASP.NET中的C#語言編程,實現把EXCEL電子文檔導入到SQL SERVER數據庫中,并對程序的算法和代碼做了進一步的研究和分析。
1 數據表結構
在《綜合實操管理系統》中,涉及很多數據表都需要輸入原始數據。其中院系指導教師表用來保存實操指導教師的信息,而這些基本信息數據量大并已經用EXCEL表格保存硬盤中了。所以這里以導入“院系指導教師表”信息為例。
“院系指導教師表”包括了院系教師職工號、教師名字、所教專業、職務、職稱、所在部門、聯系電話、密碼 、權限等字段,一條記錄就是一名教師,其中的院系教師職工號為關鍵字。在導入時只需判斷關鍵字是否重復,不重復即導入,重復則忽略。
2 EXCEL表格結構
對應數據庫中的數據表的結構,需要設計相同EXCEL表格,其結構特別是不能為空的關鍵信息要與數據庫表格“院系指導教師表”的字段對應,其字段順序可相同或者不同,為減少程序設計時疏忽上的錯誤,在設計電子表格時可保持其字段順序與數據表相互一一對應。
3 程序設計的基本算法
3.1 上傳電子表格文件
在界面設計時,部署文件上傳控件FileUpload1,其功能是在程序中將Excel文件上傳到服務器上的指定的文件夾。
3.2 讀出EXCEL文件內容保存到DataTable對象中
判斷EXCEL文件類型,確定擴展名是XLS還是XLSX。即判斷是EXCEL2003以下版本還是EXCEL2007以上版本,因為不同的版本在程序中所用驅動程序不同。然后使用OleDbConnection將已經上傳到服務器上的Excel文件讀出并保存到DataTable對象中備用。
3.3 使用SQL語句保存數據
遍歷DataTable對象,然后用SELECT語句查詢Sql Server數據庫,判斷是否存在該條數據。如果存在則不做處理,如果不存在,則插入該條數據。
4 導入數據的程序設計
4.1 引入命名空間
因數據導入涉及電子表格文件上傳、數據查詢、增加等操作,所以在程序中要引入System.IO、System.Data、System.Data.OleDb、System.Data.SqlClient等命名空間。這里System.IO主要實現文件上傳和存取操作,System.Data.OleDb用于對電子表格文件的訪問,System.Data.SqlClient實現對SQL SERVER數據庫的操作。
4.2 上傳EXCEL文件
在上傳文件之前,先判斷是否通過FileUpload1控件選擇了文件,如果沒有則給予提示。如果FileUpload1已經選擇了文件,再判斷其類型是否是電子表格文件,如果不是則提示并返回。
5 結語
當開發人員用C#編寫網站導入程序時,只需要根據數據表結構設計相應的電子表格文件,明確讀取數據語句中的字段及內容和保存語句中的字段和內容一一對應,即可快速實現數據導入功能。還可把導入程序編寫成獨立模塊,增加程序通用型和可移植性,為今后程序開發節省大量時間。該程序的代碼在VISUAL STADIO 2010和SQL SERVER 2005環境下正常運行。
參考文獻
[1] 宋毓.基于ASP.NET技術的圖書館新聞發布系統的實現[J].科技情報開發與經濟,2011(17):26-28.
[2] 田路.EXCEL數據分析在問77卷調查中的應用[J].成功:教育,2011(8):201.