亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Excel到SQL Server的數(shù)據(jù)遷移分析

        2013-12-31 00:00:00張紅瑞

        摘 要:本文論述了從Excel文件到SQL Server的數(shù)據(jù)遷移過(guò)程,并根據(jù)數(shù)據(jù)導(dǎo)入流程進(jìn)行分析并給出了關(guān)鍵代碼。

        關(guān)鍵詞:Excel;SQL Sever數(shù)據(jù)庫(kù);數(shù)據(jù)遷移

        中圖分類(lèi)號(hào):TP311.13

        在目前的各種管理系統(tǒng)中,其后臺(tái)數(shù)據(jù)庫(kù)由于開(kāi)發(fā)工具選擇的原因可能有所不同[1]。在數(shù)據(jù)管理和遷移過(guò)程中,可以利用原系統(tǒng)先將數(shù)據(jù)輸出到Excel數(shù)據(jù)表中,Excel文件利于數(shù)據(jù)的傳遞和交換,然后再導(dǎo)入到管理系統(tǒng)數(shù)據(jù)庫(kù)中的方法來(lái)進(jìn)行數(shù)據(jù)遷移和格式的轉(zhuǎn)換。常規(guī)的Excel數(shù)據(jù)導(dǎo)入導(dǎo)出到SQL Server,可以使用“SQL Server Data Transformation Services(DTS)導(dǎo)入向?qū)А被颉癝QL Server導(dǎo)入和導(dǎo)出向?qū)А边M(jìn)行數(shù)據(jù)的遷移。Excel數(shù)據(jù)導(dǎo)入步驟如下:①選擇要操作的數(shù)據(jù)庫(kù),單擊右鍵,在彈出的菜單中選擇“任務(wù)”子菜單中的“導(dǎo)入數(shù)據(jù)”菜單;②在選擇數(shù)據(jù)源對(duì)話框中,選擇Microsoft Excel,然后輸入Excel文件路徑及名稱(chēng)或通過(guò)瀏覽按鈕定位Excel文件;③在選擇目標(biāo)對(duì)話框中,選擇Microsoft OLE DB Provider for SQL Server,數(shù)據(jù)庫(kù)選擇要導(dǎo)入的數(shù)據(jù)庫(kù)名稱(chēng);④選擇復(fù)制一個(gè)表或多個(gè)表或多個(gè)視圖的數(shù)據(jù),選擇Excel源表時(shí),附加$的Excel對(duì)象名稱(chēng)代表工作表,沒(méi)有附加$普通對(duì)象名稱(chēng)代表Excel指定的范圍[2]。SQL Server數(shù)據(jù)庫(kù)的數(shù)據(jù)導(dǎo)出到Excel文件過(guò)程與導(dǎo)入過(guò)程基本一致,但是對(duì)于非專(zhuān)業(yè)的管理人員來(lái)說(shuō),更需要開(kāi)發(fā)人員提供Excel數(shù)據(jù)直接導(dǎo)入導(dǎo)出到SQL Server的數(shù)據(jù)操作功能,因此通過(guò)使用編程的方法來(lái)實(shí)現(xiàn)數(shù)據(jù)遷移就非常必要。

        1 數(shù)據(jù)導(dǎo)入流程

        圖1 數(shù)據(jù)導(dǎo)入流程

        數(shù)據(jù)轉(zhuǎn)換首先將基礎(chǔ)數(shù)據(jù)從管理系統(tǒng)中輸出到Excel數(shù)據(jù)文件中,然后將Excel數(shù)據(jù)文件上傳導(dǎo)服務(wù)器中。在上傳Excel數(shù)據(jù)文件后,將Excel數(shù)據(jù)文件看作數(shù)據(jù)庫(kù),其中的工作表看作數(shù)據(jù)表,使用標(biāo)準(zhǔn)的SQL語(yǔ)句讀取其中的數(shù)據(jù)到OleDBDataAdapter中,然后將數(shù)據(jù)再插入SQL Server數(shù)據(jù)庫(kù)[3],數(shù)據(jù)導(dǎo)入流程如圖1所示。

        2 Excel數(shù)據(jù)文件上傳處理

        在上傳Excel數(shù)據(jù)文件到服務(wù)器時(shí),首先需要判斷上傳的文件是否為空并且其后綴名為.xls。為了保證其文件名稱(chēng)的唯一性,使用日期時(shí)間+隨機(jī)值作為上傳Excel文件的名字,相關(guān)代碼如下:

        Random rd = new Random(1);

        string filename = DateTime.Now.Date.ToString(\"yyyymmdd\") + DateTime.Now.ToLongTimeString().Replace(\":\", \"\") + rd.Next(9999).ToString() + \".xls\";

        //將上傳的Excel文件將保存在網(wǎng)站目錄下的file文件夾中

        File1.PostedFile.SaveAs(@Server.MapPath(\"../file/\") + filename);

        3 Excel數(shù)據(jù)讀取到數(shù)據(jù)集中

        在Excel數(shù)據(jù)文件保存到服務(wù)器后,將Excel數(shù)據(jù)文件看作數(shù)據(jù)庫(kù)并建立數(shù)據(jù)連接,然后將Excel中的工作表看作數(shù)據(jù)表并執(zhí)行SQL查詢(xún)命令,最后將選擇Excel數(shù)據(jù)表的數(shù)據(jù)獨(dú)到數(shù)據(jù)集中,相關(guān)代碼如下:

        string conn = \"Provider = Microsoft.Jet.OLEDB.4.0;Data Source =\" + Server.MapPath(\"../file\") + \"/\" + filename + \";Extended Properties=Excel 8.0\";

        OleDbConnection thisconnection = new OleDbConnection(conn);

        thisconnection.Open();

        string Sql = \"select * from [data$]\";

        OleDbDataAdapter mycommand = new OleDbDataAdapter(Sql, thisconnection);

        //創(chuàng)建數(shù)據(jù)集并將數(shù)據(jù)讀取進(jìn)來(lái)

        DataSet ds = new DataSet();

        mycommand.Fill(ds, \"[data]\");

        thisconnection.Close();

        4 遍歷數(shù)據(jù)集并插入數(shù)據(jù)表

        在ds數(shù)據(jù)集中的數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫(kù)相關(guān)表之前,可以先遍歷ds數(shù)據(jù)集中的記錄是否已存在于數(shù)據(jù)庫(kù)中,可以執(zhí)行SQL 語(yǔ)句:select count(*) from 數(shù)據(jù)表 where查詢(xún)記錄條件,如果執(zhí)行后的記錄數(shù)為0,則表明數(shù)據(jù)庫(kù)中不存在相關(guān)記錄,可以插入數(shù)據(jù)庫(kù)[4],相關(guān)代碼如下

        //計(jì)算記錄數(shù)并遍歷數(shù)據(jù)集

        int count = ds.Tables[\"[data]\"].Rows.Count;

        SqlConnection con = dataconn.getcon();

        con.Open();

        for (int i = 0; i < count; i++)

        {

        字段值1 = ds.Tables[\"[data]\"].Rows[i][\"字段名1\"].ToString();

        字段值N = ds.Tables[\"[data]\"].Rows[i][\"字段名N\"].ToString();

        //如果該記錄不存在,則將數(shù)據(jù)集中的字段值組合起來(lái),插入到SQL Server數(shù)據(jù)庫(kù)中

        string excelsql = \"insert into 數(shù)據(jù)表(字段名1,…,字段名N)values('\" +字段值1 + \"', … '\" +字段值N+ \"')\";

        dataconn.eccom(excelsql);

        }

        5 總結(jié)

        SQL Server中的數(shù)據(jù)導(dǎo)出Excel文件,首先建立Excel模版文件,然后在工程中引用Microsoft Excel11.0 Object Library,根據(jù)SQL數(shù)據(jù)庫(kù)內(nèi)容使用代碼寫(xiě)入Excel模版文件,然后另存為Excel數(shù)據(jù)文件,最后供用戶(hù)下載。Excel數(shù)據(jù)導(dǎo)入導(dǎo)出技術(shù)是方便用戶(hù)將數(shù)據(jù)庫(kù)數(shù)據(jù)進(jìn)行遷移的有效途徑,本文實(shí)現(xiàn)了將Excel文件中的數(shù)據(jù)導(dǎo)入到SQL Server數(shù)據(jù)庫(kù)并給出了關(guān)鍵的相關(guān)代碼,為軟件開(kāi)發(fā)人員及數(shù)據(jù)庫(kù)管理人員提供了一定的參考價(jià)值。

        參考文獻(xiàn):

        [1]傅清平.異構(gòu)數(shù)據(jù)庫(kù)中數(shù)據(jù)轉(zhuǎn)換技術(shù)[J].江西煤炭科技,2004(3):55-57.

        [2]Microsoft.如何將數(shù)據(jù)從Excel導(dǎo)入到SQL Server[EB/OL].http://support.microsoft.com/default.aspx?scid=kb,zh-cn:2013-8-31.

        [3]王平勤,董付國(guó).asp.net/c#實(shí)現(xiàn)excel與SQL Server數(shù)據(jù)遷移技術(shù)研究[J].福建電腦,2008,14(3):184-185.

        [4]尹幫治.基于VC# 的Excel表格與SQL Server數(shù)據(jù)庫(kù)的批量數(shù)據(jù)導(dǎo)入導(dǎo)出技術(shù)研究[J].企業(yè)技術(shù)開(kāi)發(fā),2008,27(8):13-16.

        [5]張麗英.基于.NET的Excel數(shù)據(jù)批量導(dǎo)入SQL Server的設(shè)計(jì)與實(shí)現(xiàn)[J].南通紡織職業(yè)技術(shù)學(xué)院學(xué)報(bào)(綜合版),2012,12(1):7-10.

        作者簡(jiǎn)介:張紅瑞(1978-),女,河北定州人,講師,碩士,主要研究領(lǐng)域:計(jì)算機(jī)網(wǎng)絡(luò)、計(jì)算機(jī)視覺(jué)。

        韩国三级大全久久网站| 特级毛片爽www免费版| 欧洲极品少妇| 亚洲av日韩aⅴ无码电影| 日本不卡的一区二区三区| 亚洲国产一区二区三区精品| 性生交片免费无码看人| 亚洲国产精品久久久久秋霞1| 亚洲乱在线播放| 国产精品夜色视频久久| 中文字幕日韩精品有码视频| a级毛片100部免费看| 成年女人A级毛片免| 久久人妻精品中文字幕一区二区| 久久精品国产亚洲av超清| 国产成人无码一区二区在线播放 | 国产片AV在线永久免费观看| 精品女同一区二区三区在线播放器| 91精品国产色综合久久| 国偷自产视频一区二区久| 夜夜春精品视频| 色老板在线免费观看视频日麻批| 国产精品一区二区日本| 特级做a爰片毛片免费看108| 一区二区韩国福利网站| 国产av一区二区制服丝袜美腿| 中文在线中文a| 三上悠亚av影院在线看| a√无码在线观看| 亚洲色图专区在线视频| 四虎国产精品永久在线国在线| 98色花堂国产精品首页| 亚洲国产一区二区精品| 欧美男生射精高潮视频网站| 美丽的熟妇中文字幕| 尤物yw午夜国产精品视频| 国产精品老熟女乱一区二区| 少妇被粗大的猛烈进出免费视频 | 免费人成视频在线| 久久男人av资源网站无码| 蜜桃久久综合一区二区|