基于WinCE操作系統(tǒng)的ARM9系列嵌入式網(wǎng)絡(luò)模塊(如EM9000),自英創(chuàng)公司推出以來,以其穩(wěn)定可靠的運(yùn)行性能、完善的硬件接口、方便的開發(fā)工具(VC或VS.NET),在各個行業(yè)得到了廣泛的應(yīng)用。由于微軟的最新開發(fā)工具Visual Studio.NET 2005支持使用C#語言進(jìn)行應(yīng)用開發(fā),客戶可以更方便地構(gòu)筑應(yīng)用界面并調(diào)用方便可靠的API,越來越多的客戶選用它作為嵌入式設(shè)備開發(fā)調(diào)試工具。在應(yīng)用中,客戶經(jīng)常要使用到嵌入式本地數(shù)據(jù)庫進(jìn)行數(shù)據(jù)庫建立、數(shù)據(jù)查詢、刪除等功能,針對此情況,我們在此對使用C#2005進(jìn)行SQL CE 2.0本地數(shù)據(jù)庫開發(fā)進(jìn)行介紹,并提供相應(yīng)的例程。
客戶在進(jìn)行SQL CE數(shù)據(jù)庫開發(fā)之前應(yīng)已滿足如下條件:
1、確認(rèn)其使用的ARM9模塊支持SQL CE數(shù)據(jù)庫開發(fā)。(客戶如無特殊配置要求,英創(chuàng)ARM9系列模塊均缺省支持SQL CE 2.0數(shù)據(jù)庫)
2、開發(fā)主機(jī)已經(jīng)安裝了Visual Studio.NET 2005
3、客戶已經(jīng)閱讀過英創(chuàng)相關(guān)文檔《使用VS2005連接和調(diào)試英創(chuàng)ARM9嵌入式模塊》,并能成功地使用C#進(jìn)行程序的連接和調(diào)試
作為SQL CE開發(fā)的必要條件,必須在安裝了VS.NET 2005的開發(fā)主機(jī)上安裝Microsoft .NET Compact Framework SP2。該程序可在Microsoft網(wǎng)站上免費(fèi)下載。英創(chuàng)開發(fā)光盤的“SOFTWARE\CSharp2005\CSharp軟件工具”目錄下也提供了此程序,程序名NETCFSetupv2(sp2).msi,雙擊運(yùn)行它即可進(jìn)行安裝,安裝過程按照其提示的缺省選擇即可。
安裝完畢后,即可進(jìn)入程序的開發(fā)。客戶按照《使用VS2005連接和調(diào)試英創(chuàng)ARM9嵌入式模塊》的步驟創(chuàng)建工程項目后,要想在本項目中操作數(shù)據(jù)庫,首先要添加對System.Data.SqlServerCe.dll動態(tài)鏈接庫的引用,步驟如下:
1、在集成開發(fā)環(huán)境中,對“解決方案資源管理器”中的“引用”單擊右鍵,并單擊“添加引用”。
2、在彈出的“添加引用”對話框選項卡里選“瀏覽”,并查找目錄【C:\Program Files\Microsoft Visual Studio 8\SmartDevices\SDK\SQL Server\Mobile\v2.0】,可以看到System.Data.SqlServerCe.dll,選擇它并“確定”。
3、可以看到“解決方案資源管理器”中的“引用”下已經(jīng)添加了對System.Data.SqlServerCe的引用。
但是光是在“解決資源管理器”的“引用”下添加還不行,還必須在程序的起始using語句中添加:using System.Data.SqlServerCe; 語句,應(yīng)用程序才能直接調(diào)用相關(guān)的類和函數(shù)。
英創(chuàng)公司提供了一個小型但是基本功能具備的C#應(yīng)用程序源代碼供客戶參考,客戶可以在應(yīng)用光盤的如下目錄找到這個工程:【SOFTWARE\CSharp2005\SQLCE_001】,里面有比較詳細(xì)的注釋供客戶參考,客戶在參考本程序之前可以先將此程序進(jìn)行編譯下載并在目標(biāo)系統(tǒng)上運(yùn)行,本例程在目標(biāo)板上運(yùn)行的界面如下:
程序界面及功能說明
四個功能按鈕:
● 數(shù)據(jù)庫及表創(chuàng)建按鈕:創(chuàng)建名稱為Leedata.sdf的數(shù)據(jù)庫,并在數(shù)據(jù)庫下建立一個Products表;創(chuàng)建完畢后按鈕自動灰化。
● 插入記錄按鈕:在Products表里插入8條固定內(nèi)容的產(chǎn)品記錄;插入后按鈕自動灰化。
● 執(zhí)行查詢按鈕:將Products表里8條記錄的產(chǎn)品名稱Name字段讀出,并將其作為選擇項顯示在下拉菜單框里;完畢后,顯示缺省選中記錄的各個字段到文本框;執(zhí)行后按鈕自動灰化。
● 刪除記錄按鈕:將當(dāng)前選中顯示的記錄從Products表中刪除;刪除完畢后程序會自動重新載入下拉菜單,并重新載入缺省記錄顯示;當(dāng)8條記錄均被刪除完畢Products成為空表后,本按鈕自動灰化,并激活插入記錄按鈕。
一個下拉菜單框:載入Products表里各條記錄的產(chǎn)品名稱Name字段,并供用戶選擇查詢。
五個文本框:顯示當(dāng)前被選中記錄的各項字段值。
需要注意的語言點(diǎn)
1、AppPath=System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().GetName().CodeBase.ToString()); ///獲取當(dāng)前目錄路徑
2、SqlCeEngine eng = new SqlCeEngine('Data Source=' + slocalDatabaseName);
eng.CreateDatabase();
// 創(chuàng)建數(shù)據(jù)庫,在SQL CE里只能通過此方法創(chuàng)建數(shù)據(jù)庫
3、SqlCeConnection localConnection = new SqlCeConnection('Data Source=' + slocalDatabaseName);
localConnection.Open();
// 連接打開數(shù)據(jù)庫
4、SqlCeCommand cmdCmd = new SqlCeCommand(SQL語句字符串, localConnection);
cmdCmd.CommandType = CommandType.Text;
cmdCmd.ExecuteNonQuery();
// 進(jìn)行一次SQL操作的通用方法
5、SqlCeDataReader dr;
SqlCeCommand cmdGetData = new SqlCeCommand('SELECT 字段 FROM 表', localConnection);
dr = cmdGetData.ExecuteReader();
while (dr.Read()){…}
// 查詢方法的一種
6、SqlCeCommand cmdGetData = new SqlCeCommand();
SqlCeDataReader dr;
cmdGetData.Connection = localConnection;
cmdGetData.CommandType = CommandType.TableDirect;
cmdGetData.CommandText = 表;
cmdGetData.IndexName = 某字段的索引名;
dr = cmdGetData.ExecuteReader();
dr.Seek(DbSeekOptions...., ...);
if (dr.Read()) {...}
// 又一種查詢方法
-
嵌入式主板
+關(guān)注
關(guān)注
7文章
6086瀏覽量
35476
發(fā)布評論請先 登錄
相關(guān)推薦
評論