亚洲免费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é)。

        看黄a大片日本真人视频直播| 97自拍视频国产在线观看| 国产一区二区三区四区在线视频 | 国产情侣久久久久aⅴ免费| 欧美在线资源| 黑丝国产精品一区二区| 中文字幕人妻少妇伦伦| 欧美性色黄大片手机版| 欧美一级三级在线观看| 色偷偷亚洲av男人的天堂| 午夜福利视频一区二区二区| 亚洲a∨无码一区二区三区| 国内少妇偷人精品视频免费| 无码熟妇人妻av在线c0930| 久久精品熟女亚洲av香蕉 | 精品国内自产拍在线视频| 亚洲一区日本一区二区| 一区二区国产av网站| 欧美人与动牲交a精品| 521色香蕉网站在线观看| 国产大学生自拍三级视频| 中文字幕亚洲乱码熟女1区| 欧美成人精品三级网站| 国产精品九九九久久九九| 亚洲最大视频一区二区三区| 成人日韩熟女高清视频一区| 国产亚洲av综合人人澡精品| 日本不卡一区二区高清中文| 国产少妇高潮在线视频| 国产乱对白刺激视频| 亚洲人成人影院在线观看| 亚洲精品国产精品av| 一区二区三区日韩亚洲中文视频| 亚洲国产成人久久综合| 国产亚洲一本大道中文在线| 综合图区亚洲偷自拍熟女| 99久久无码一区人妻| 男女18禁啪啪无遮挡| 1234.com麻豆性爰爱影| 精品人妻一区二区三区视频 | 亚洲欧美日韩中文在线制服|