• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
    當前位置: 首頁 - 科技 - 知識百科 - 正文

    如何將數據導入到SQLServerCompactEdition數據庫中(五)

    來源:懂視網 責編:小采 時間:2020-11-09 15:44:45
    文檔

    如何將數據導入到SQLServerCompactEdition數據庫中(五)

    如何將數據導入到SQLServerCompactEdition數據庫中(五):系列文章導航: 如何將數據導入到 SQL Server Compact Edition 數據庫中(一) 如何將數據導入到 SQL Server Compact Edition 數據庫中(二) 如何將數據導入到 SQL Server Compact Edition 數據庫中(三) 如何將數據導入到 SQL Serv
    推薦度:
    導讀如何將數據導入到SQLServerCompactEdition數據庫中(五):系列文章導航: 如何將數據導入到 SQL Server Compact Edition 數據庫中(一) 如何將數據導入到 SQL Server Compact Edition 數據庫中(二) 如何將數據導入到 SQL Server Compact Edition 數據庫中(三) 如何將數據導入到 SQL Serv

    系列文章導航: 如何將數據導入到 SQL Server Compact Edition 數據庫中(一) 如何將數據導入到 SQL Server Compact Edition 數據庫中(二) 如何將數據導入到 SQL Server Compact Edition 數據庫中(三) 如何將數據導入到 SQL Server Compact Edition 數

    系列文章導航:
    如何將數據導入到 SQL Server Compact Edition 數據庫中(一)
    如何將數據導入到 SQL Server Compact Edition 數據庫中(二)
    如何將數據導入到 SQL Server Compact Edition 數據庫中(三)
    如何將數據導入到 SQL Server Compact Edition 數據庫中(四)

    摘要:在本系列文章中,我已經嘗試在 Windows 桌面平臺和 Windows Mobile 平臺上將數據導入到 SQL Server Compact Edition 數據庫中。不過,之前的示例程序都屬于 Windows 應用程序。本文將介紹如何在 ASP.NET Web 應用程序中實現 SQL Server Compact Edition 數據庫的生成和數據導入。

    一、創(chuàng)建 ASP.NET 版的數據導入程序

    1.使用 Visual Studio 2005 新建一個 Visual C# 版本的“ASP.NET Web 應用程序”項目,項目名稱為“CopyTableASPNET”。

    2.為新建的“CopyTableASPNET”項目添加對 System.Data.SqlServerCe.dll 程序集的引用,注意版本號是 9.0.242.0。這里特別聲明版本號是考慮到大家可能安裝了 Visual Studio 2008,它自帶了最新的 SQL Server Compact 3.5,版本號是 3.5.0.0,可能也會出現在添加引用對話框中。而本文的示例是針對 SQL Server 2005 Compact Edition (v3.1) 編寫的,程序集版本號為 9.0.242.0。

    3.在“解決方案資源管理器”打開 Default.aspx 頁面,默認顯示的是 HTML 代碼視圖,需要切換到設計視圖。從工具箱拖拽一個 Button 控件到頁面上,修改其 Text 屬性為“生成 SQL Server Compact 數據庫”。

    4.打開 Default.aspx 頁面的 C# 代碼編輯視圖,或者直接打開 Default.aspx.cs 文件。從本系列文章第四篇的示例代碼中,復制 From1.cs 文件的 GetTableNames, CopyTable, VerifyDatabaseExists, GenerateTableSchemaSql, GetSqlCeDataType 和 GetSqlCeNativeType 等方法到 Default.aspx.cs 文件中。

    5.回到 Default.aspx 頁面的設計視圖,用鼠標雙擊 Button 控件,此時會跳到 Default.aspx.cs 的代碼編輯視圖,并生成了 Button 控件的 Click 事件處理方法。將以下代碼復制到 Click 事件處理方法中:

    // 創(chuàng)建源 SQL Server 數據庫連接對象
    string srcConnString = "Data Source=(local);Initial Catalog=Northwind;Integrated Security=True";
    SqlConnection srcConnection = new SqlConnection(srcConnString);

    // 創(chuàng)建目標 SQL Server Compact Edition 數據庫連接對象
    string destConnString = string.Format("Data Source={0};", Server.MapPath("Northwind.sdf"));
    SqlCeConnection destConnection = new SqlCeConnection(destConnString);

    VerifyDatabaseExists(destConnString);

    srcConnection.Open();
    destConnection.Open();

    // 復制數據
    string[] tableNames = GetTableNames(srcConnection);
    string query;
    for (int i = 0; i < tableNames.Length; i++)
    {
    query = string.Format("SELECT * FROM [{0}]", tableNames[i]);
    CopyTable(srcConnection, destConnection, query, tableNames[i]);
    }

    srcConnection.Close();
    destConnection.Close();

    // 重定向到生成的 Northwind.sdf 文件的 url 地址(使瀏覽器提示下載)
    Response.Redirect("Northwind.sdf");

    這段代碼跟本系列文章第四篇的示例代碼非常相似,大家注意代碼中加亮的語句。

    6.數據導入的代碼已經編寫完成,現在可以生成項目,并在瀏覽器中查看 Default.aspx 頁面。

    出錯了!到底是什么原因呢?

    二、解鎖 SQL Server Compact Edition 對 ASP.NET 的支持

    我在《SQL Server精簡版支不支持ASP.NET?》曾經探討過這個問題。“當前 SQL Server Compact Edition 并未針對網站數據庫用途進行優(yōu)化。默認情況下,在 SQL Server Compact Edition 中阻塞了來自 ASP.NET 應用程序的連接。SQL Server Compact Edition 經過優(yōu)化后,可在應用程序中作為嵌入數據庫使用。使用 SQL Server Compact Edition 作為網站數據庫要求支持多用戶和并發(fā)數據更改。這可能會導致性能問題。因此,不支持這些情形。其他版本的 SQL Server 2005(包括 SQL Server 2005 Express Edition)經過優(yōu)化后,也可作為網站數據庫使用。在使用 ASP.NET 創(chuàng)建 SQL Server Compact Edition 數據庫以實現同步操作的應用方案中,SQL Server Compact Edition 可與 ASP.NET 配合使用。使用下列代碼更改 SQL Server Compact Edition 的默認行為,以便與 ASP.NET 配合使用:AppDomain.CurrentDomain.SetData("SQLServerCompactEditionUnderWebHosting", true)”——引自《SQL Server 2005 Compact Edition 聯機叢書》

    7.為了解決步驟6出現的錯誤,我在 Default.aspx 頁面上添加一個 CheckBox 控件 chkEnableSqlCe,并將它的 Text 屬性設置為“允許在 ASP.NET 使用 SQL Server Compact”。在 Default.aspx.cs 的 Page_Load 方法中添加以下代碼:

    if (chkEnableSqlCe.Checked)
    {
    AppDomain.CurrentDomain.SetData("SQLServerCompactEditionUnderWebHosting", true);
    }
    else
    {
    AppDomain.CurrentDomain.SetData("SQLServerCompactEditionUnderWebHosting", false);
    }

    8.重新編譯項目,并瀏覽 Default.aspx 頁面。頁面加載完成后,選中“允許在 ASP.NET 使用 SQL Server Compact”檢查框,再點擊“生成 SQL Server Compact 數據庫”按鈕。此時,Default.aspx 頁面將在后臺生成 SQL Server Compact Edition 數據庫文件 Northwind.sdf,并從 SQL Server 服務器的 Northwind 數據庫導入數據,最后將提示您下載 Northwind.sdf 文件。

    三、總結

    在很多場景中,我們可以使用 ASP.NET 根據各種條件在服務器端快速生成 SQL Server Compact Edition 數據庫文件(.sdf),并從數據庫服務器導入初始數據,再將動態(tài)生成的數據庫文件提供給客戶端程序下載。這樣可以加速和簡化 Windows Mobile 應用程序初始化本地數據庫的過程,因為只需要傳輸文件而不需要進行復雜的數據同步。本文介紹的方案并沒有結束,實際上 SQL Server Compact Edition 數據庫文件的壓縮率是很高的。例如:本文的示例代碼生成的 Northwind.sdf 文件是 788 KB,經過 ZIP 標準壓縮后生成的 Northwind.zip 文件是 228 KB。為了減少數據傳輸流量,同時也是為了節(jié)約時間,我們還可以對生成的數據庫文件進行壓縮后,再提供給客戶端下載,客戶端再對文件進行解壓縮。

    示例代碼下載:sqlce_data_import5.rar

    作者:黎波
    博客:http://upto.cnblogs.com/
    日期:2008年3月5日

    聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    如何將數據導入到SQLServerCompactEdition數據庫中(五)

    如何將數據導入到SQLServerCompactEdition數據庫中(五):系列文章導航: 如何將數據導入到 SQL Server Compact Edition 數據庫中(一) 如何將數據導入到 SQL Server Compact Edition 數據庫中(二) 如何將數據導入到 SQL Server Compact Edition 數據庫中(三) 如何將數據導入到 SQL Serv
    推薦度:
    標簽: 數據 導入 如何
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 中文精品人人永久免费| 人人妻人人澡人人爽精品日本 | 精品无码国产一区二区三区AV| 91精品国产高清久久久久久91 | 91久久婷婷国产综合精品青草| 日韩亚洲精品福利 | 人精品影院| 国产91久久精品一区二区| 亚洲精品岛国片在线观看| 国产精品九九久久精品女同亚洲欧美日韩综合区| 久久精品99久久香蕉国产色戒 | 亚洲综合精品一二三区在线| heyzo高无码国产精品| 亚洲午夜国产精品无码老牛影视| 国产在线精品一区二区不卡麻豆| 老司机99精品99| 国产suv精品一区二区33| 欧美精品一区二区蜜臀亚洲| 亚洲А∨精品天堂在线| 久久精品国产亚洲7777| 国产精品成人观看视频| 久久精品国产精品国产精品污| 国产精品三级国产电影| 精品深夜AV无码一区二区| 亚洲精品无码高潮喷水在线| 欧美日韩精品久久久久| 精品视频一区二区三区| 国产精品自在在线午夜福利 | 久久99精品久久久久久久久久| 亚洲AV永久青草无码精品| 在线观看国产精品日韩av| 亚洲国产精品毛片av不卡在线| 欧美成人精品高清在线播放 | 国产精品九九九| 国产午夜精品久久久久九九电影 | 亚洲av日韩av天堂影片精品| 亚洲精品人成无码中文毛片| 亚洲AV永久无码精品一区二区国产| 久久精品国产一区二区三区| 欧美激情精品久久久久久| 欧美亚洲成人精品|