演練:使用 SQL Server CE 資料庫

來源:互聯網
上載者:User
作者:Microsoft    轉貼自:   http://www.siyuansoft.com/info_Print.asp?ArticleID=316

演練:使用 SQL Server CE 資料庫

本節將指導您完成使用 Microsoft SQL Server 2000 Windows CE Edition (SQL Server CE) 資料庫時需要執行的主要任務。假定您沒有任何 SQL Server CE 資料庫,需要在新的 Microsoft Visual Studio .NET 項目中建立新的資料庫。

該演練包括以下任務:

  • 建立新的 SQL Server CE 資料庫
  • 讀取 SQL Server CE 資料庫資料
  • 更改 SQL Server CE 資料庫中的資料

闡釋以上每個任務步驟的代碼旨在一起運行。不能在任務中運行僅用於特定步驟的代碼。有關完整代碼清單,請參見代碼清單:使用 SQL Server CE 資料庫。

建立新的資料庫

SQL Server CE 中的資料庫是儲存結構化資料的表集合。在可以儲存資料庫之前,必須建立資料庫。在建立資料庫之後,可以建立儲存資料的表。

在本節中,您將建立一個新的資料庫,然後建立一個表,最後將資料添加到該表中。若要執行這些步驟,請使用 SQL Server CE (System.Data.SqlServerCe) .NET Framework 精簡版資料提供者的 SqlCeConnectionSqlCeEngineSqlCeCommand 類。

注意   不能在此任務中運行僅用於特定步驟的代碼。有關完整代碼清單,請參見代碼清單:使用 SQL Server CE 資料庫。

建立新的 SQL Server CE 資料庫

  1. 啟動 Visual Studio .NET,然後開啟一個新項目。
  2. 建立對使用的命名空間的引用。
    using System;                using System.IO;                using System.Text;                using System.Data;                using System.Data.SqlServerCe;                using System.Collections;                using System.Windows.Forms;                using System.Data.Common;
  3. 建立 WalkThrough 類。
    public class WalkThrough                {                static void Main()                {                SqlCeConnection conn = null;                try                {
  4. 驗證具有您打算使用的名稱的資料庫是否已存在。
                if (File.Exists (Test.sdf) )                File.Delete (Test.sdf);
  5. 使用 System.Data.SqlCeEngine 對象建立名為 Test.sdf 的空資料庫。

    注意   SQL Server CE 中,資料庫名稱的副檔名為 .sdf。

                SqlCeEngine engine = new SqlCeEngine (Data Source = Test.sdf);                engine.CreateDatabase ();
  6. 串連到這個新資料庫。
    conn = new SqlCeConnection (Data Source = Test.sdf);                conn.Open();

建立新表

  1. 使用 System.Data.SqlCeCommand 建立命令類的執行個體。

    SqlCeCommand cmd = conn.CreateCommand();
  2. 運行命令 cmd 建立表。用於建立表的指令必須在 cmd.CommandText 所包含的 SQL 代碼中。

    若要使用 SQL Server CE 的 SQL 程式設計語言建立表,請使用 CREATE TABLE 文法。有關更多資訊,請參見《SQL Server CE 線上手冊》中的用於 SQL Server CE 的 SQL 參考。

    cmd.CommandText = CREATE TABLE TestTbl(col1 int PRIMARY KEY, col2 ntext, col3 money);                cmd.ExecuteNonQuery();

將資料添加到新表中

  1. 運行命令以添加資料行。與建立表相同,用於添加行的指令也必須在 cmd.CommandText 所包含的 SQL 代碼中。

    若要使用 SQL Server CE 的 SQL 程式設計語言將行添加到表中,請使用 INSERT 文法。有關更多資訊,請參見《SQL Server CE 線上手冊》中的用於 SQL Server CE 的 SQL 參考。

    cmd.CommandText =  INSERT INTO TestTbl(col1, col2, col3) VALUES (0, 'abc', 15.66);                cmd.ExecuteNonQuery();
  2. 建立命令,使用參數將資料多次插入表中。

    參數可以更高效地查詢資料庫,因為可以使用一組包含參數的 SQL 陳述式插入多個值。有關更多資訊,請參見《SQL Server CE 線上手冊》的在查詢中使用參數。

    cmd.CommandText = INSERT INTO TestTbl(col1, col2, col3) VALUES (?, ?, ?);                cmd.Parameters.Add(new SqlCeParameter(p1, SqlDbType.Int));                cmd.Parameters.Add(new SqlCeParameter(p2, SqlDbType.NText));                cmd.Parameters.Add(new SqlCeParameter(p3, SqlDbType.Money));                cmd.Parameters[p2].Size = 50;                cmd.Prepare();
  3. 執行參數化命令,將資料插入表中。
    cmd.Parameters[p1].Value = 1;                cmd.Parameters[p2].Value = abc;                cmd.Parameters[p3].Value = 15.66;                cmd.ExecuteNonQuery();
  4. 清除參數,並檢查已插入表中的資料。

    若要使用 SQL Server CE 的 SQL 程式設計語言讀取現有資料,請使用 SELECT 文法。有關更多資訊,請參見《SQL Server CE 線上手冊》中的用於 SQL Server CE 的 SQL 參考。

    cmd.Parameters.Clear();                //Set the command text to a SELECT query.                //                cmd.CommandText = SELECT * FROM TestTbl;
讀取 SQL Server CE 資料庫資料

讀取資料庫資料是一種常見的任務,通常涉及對錶行資訊的訪問。為使用 System.Data.SqlServerCe 執行此任務,您需要 SqlCeDataReaderSqlCeCommand 對象。

注意   有關完整代碼清單,請參見代碼清單:使用 SQL Server CE 資料庫。

  1. 調用 SqlCeCommand 對象的 ExecuteReader 方法以建立 SqlCeDataReader 的執行個體。

    SqlCeDataReader rdr = cmd.ExecuteReader();
  2. 指示資料讀取器 rdr 在行存在時在每行的列中顯示資料。
    while (rdr.Read())                {MessageBox.Show(col1 =  + rdr.GetInt32(0) +                col2 =  + rdr.GetString(1) +                col3 =  + rdr.GetSqlMoney(2));                }
更改 SQL Server CE 資料庫中的資料

在建立表後,可以以多種方式修改表中的資料:更改特定資料的屬性,添加和刪除資料行,甚至還可以通過修改表中的列來更改儲存資料的方式。

在本節中,您將更改表項的值,尋找更改的表的資料並處理所有錯誤。為執行這些步驟,您將使用在前面的任務中使用的類:SqlCeCommandSqlCeDataReader。另外,您將使用 SqlCeException 進行錯誤處理。

注意   不能在此任務中運行僅用於特定步驟的代碼。有關完整代碼清單,請參見代碼清單:使用 SQL Server CE 資料庫。

更新 SQL Server CE 表中的資料

  • 設定命令對象以使用 UPDATE 語句。

    若要使用 SQL Server CE 的 SQL 程式設計語言更改行列的值,請使用 UPDATE 文法。有關更多資訊,請參見《SQL Server CE 線上手冊》中的用於 SQL Server CE 的 SQL 參考。

    cmd.CommandText = UPDATE TestTbl SET col2 = 'some new value' WHERE col1 = 0;                cmd.ExecuteNonQuery();

讀取 SQL Server CE 表中的資料

  1. 設定命令對象以使用 SELECT 語句,然後通過執行 SqlCeCommand.ExecuteReader 建立資料讀取器的執行個體。

                cmd.CommandText = SELECT * FROM TestTbl;                rdr = cmd.ExecuteReader();                while (rdr.Read())                {                MessageBox.Show( col1 =  + rdr.GetInt32(0) +                col2 =  + rdr.GetString(1) +                col3 =  + rdr.GetSqlMoney(2));                }                }
  2. 使用 SqlCeException 捕獲任何錯誤,然後關閉與資料庫的串連。
     catch (SqlCeException e)                {                ShowErrors(e);                }                finally                {                if(conn.State == ConnectionState.Open)                conn.Close();                }                }                public static void ShowErrors(SqlCeException e)                {                SqlCeErrorCollection errorCollection = e.Errors;                StringBuilder bld = new StringBuilder();                foreach (SqlCeError err in errorCollection)                {                bld.Append(\n Error Code:  + err.HResult.ToString(X));                bld.Append(\n Message   :  + err.Message);                bld.Append(\n Minor Err.:  + err.NativeError);                bld.Append(\n Source    :  + err.Source);                foreach (int numPar in err.NumericErrorParameters)                {                if (0 != numPar) bld.Append(\n Num. Par. :  + numPar);                }                foreach (string errPar in err.ErrorParameters)                {                if (String.Empty != errPar) bld.Append(\n Err. Par. :  + errPar);                }                MessageBox.Show(bld.ToString());                bld.Remove(0, bld.Length);                }                }                }

有關 SQL Server CE 中的錯誤處理的更多資訊,請參見《SQL Server CE 線上手冊》中的錯誤處理。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.