使用 SQL Server CE 数据库

演练:使用 SQL Server CE 数据库

http://www.cnblogs.com/pingkeke/archive/2006/07/12/449158.html

http://www.siyuansoft.com/info_Print.asp?ArticleID=316

本节将指导您完成使用 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 联机手册》中的错误处理。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
sql server ce 的工具 非常有用 SQL Server 2005 移动版(SQL Server Mobile)或SQL Server 2000 Windows CE 2.0版(SQL Server CE 2.0)的企业和个人用户如果计划与SQL Server 2000或SQL Server 2005数据库保持同步,需要在您运行Microsoft Internet Information Services(IIS)的服务器上安装互联工具。 本页内容表述的是互联工具。请注意文件名中的“xx”是代表安装语言的标识符。最初仅有英文互联工具信息(“en”即标识符“XX”)。为满足向后兼容的需要,我们提供SQL Server CE 2.0复制软件。 请查阅安装互联工具的设置说明。 1. Microsoft SQL Server 2005移动版服务器工具(sqlce30setupxx.msi)在IIS 箱中安装SQL Server Mobile复制组件。 这个组件用于把移动设备中的SQL Server Mobile连接到SQL Server 2005、SQL Server 2000 SP3a、及 SQL Server 2000 SP4数据库。 2. Microsoft SQL Server 2000 Service Pack 4复制组件(sql2kxxsp4.msi)在IIS机器中安装SQL Server 2000 SP3a复制组件。这个组件用于把移动设备中的SQL Mobile数据库连接到SQL Server 2000 SP4数据库。 3. Microsoft SQL Server 2000 Service Pack 3a复制组件(sql2kxxsp3a.msi)在IIS机器中安装 SQL Server CE 2.0 及 SQL Server 2000 SP4 复制组件。 该组件用于把移动设备中的SQL Server CE 2.0数据库连接到SQL Server 2000 SP3a数据库。 4. 用于SQL Server 2000 SP4 (sqlce20sql2ksp4.exe)的SQL Server CE 2.0 复制组件在IIS机器中安装 SQL Server CE 2.0 及 SQL Server 2000 SP4 复制组件。该组件用于把移动设备中的SQL Server CE 2.0数据库连接到SQL Server 2000 SP4。 5. 用于SQL Server 2000 SP3a (sqlce20sql2ksp3a.exe)的SQL Server CE 2.0复制组件在IIS机器中安装SQL Server CE 2.0 及 SQL Server 2000 SP3a 复制组件。该组件用于把移动设备中的SQL Server CE 2.0数据库连接到SQL Server 2000 SP3a 数据库

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值