Windows Phone 7 使用嵌入式資料庫 SQLite

  • 10545
  • 0

Windows Phone 7 使用嵌入式資料庫 SQLite

WM6.5若要開發微型資料庫應用大家一定會想到使用 Microsoft SQL Server Compact 3.5 來解決手機上儲存資料問題,可是使用 WP7開發資料庫應用就無法使用sqlce的方案了,沒關係在網路有找到可以使用SQLite方式來處理接下來看看怎麼使用,參考此篇文章範例程式修改 http://sviluppomobile.blogspot.com/2010/03/sqlite-for-wp-7-series-proof-of-concept.html

1.開啟vs2010新增一個WindowsPhoneAppliation專案,接著在加入現有專案Community.CsharpSqlite.WP此專案是從上面那個範例文章所載回來WP7_SqliteClient_Preview.zip,將此壓縮檔下載回來裡面有Community.CsharpSqlite.WP專案可使用。

image

2.在WindowsPhoneApplic專案上點選按滑鼠右鍵加入參考,選取專案裡面Community.CsharpSqlite.WP按下確定

image

3.在MainPage.xaml 上面拉五Button 及一個ListBox 用來查詢資料顯示用

image

4.MainPage.xaml.cs裡面共用變數加入

    SQLiteConnection db = null;  //透過此函式連結SQLite,SQLiteClinet下提供SQLiteConnection:連結資料庫、SQLiteCommand:執行sql語法、SQLiteException:錯誤訊息等三個函式來存取資料庫
    string fileName = "Test.DB"; //此變數為連結資料庫名稱

5.在畫面上開啟資料庫鈕按二下進入程式碼撰寫加入下列程碼

    db = new SQLiteConnection(fileName);
    db.Open(); //使用Open來開啟資料庫連結若此資料庫不存在會自動建立一個新的

6.在畫面上建立表格鈕按二下進入程式碼撰寫加入下列程碼

    SQLiteCommand cmd = db.CreateCommand("Create table Telephone (name text primary key,phone text)");
    cmd.ExecuteNonQuery();//執行建立資料表格語法

7.在畫面上新增資料鈕按二下進入程式碼撰寫加入下列程碼

     SQLiteCommand cmd = db.CreateCommand("");
     cmd.CommandText = " Insert into Telephone (name,phone) values ('陳小明','0918999898')";
     cmd.ExecuteNonQuery();//執行一筆資料在CommandText也可下Update、Delete等語法進行資料編輯

8.在畫面上新增交易鈕按二下進入程式碼撰寫加入下列程碼

  //在執行sql語法也可以加入交易機制處理

    db.BeginTransaction();
     SQLiteCommand cmd = db.CreateCommand("");
     cmd.CommandText = " Insert into Telephone (name,phone) values ('王小英','0229257898')";
     cmd.ExecuteNonQuery();
     db.CommitTransaction();

9.在畫面上查詢資料鈕按二下進入程式碼撰寫加入下列程碼

      SQLiteCommand cmd = db.CreateCommand("SELECT * FROM Telephone");
      listBox1.ItemsSource = cmd.ExecuteQuery<Telephone>();//這裡執行查詢因為WP7不支援DataTable所以要建立

Telephone 物件來存取資料,將取得資料帶到ListBox物件顯示所查詢資料

public class Telephone
   {
       public Telephone()
       {
       }
      public string name { get; set; }
      public string phone { get; set; }

   }

10.在listbox 裡面增加二個顯示欄位

<ListBox.ItemTemplate>
               <DataTemplate>
                   <StackPanel Orientation="Vertical">
                       <TextBlock Text="{Binding name}"  />
                       <TextBlock Text="{Binding phone}" />

                   </StackPanel>
               </DataTemplate>
           </ListBox.ItemTemplate>

11.啟動執行應用程式必需要從第一個按鍵一直按下來小弟沒做什麼防呆機制只是告訴大家有這個東西可以用接下來應用就留給大家去想吧,我試過中文資料已經不是什麼問題了在來有空會試一下效能及圖片等企業應用是否符合水準,希望大家一起來研究怎麼用

image

程式碼下載