zoukankan      html  css  js  c++  java
  • 演练:使用 SQL Server CE 数据库

    作者: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 联机手册》中的错误处理。

  • 相关阅读:
    jQuery中$.each()方法的使用
    点击分享功能
    localStorage使用总结
    核桃说笔记2
    php 微信模板消息发送
    报错:SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated UXXXXXXXX escape
    报错:Cannot remove entries from nonexistent file c:program filesanaconda3libsite-packageseasy-install.pth
    Pycharm如何修改背景图(BackgroundColor)
    git 设置 .gitignore 为全局global + 配置.gitignore为全局后不生效解决办法
    Windows Server 2016 下执行定时任务(英文系统)
  • 原文地址:https://www.cnblogs.com/pingkeke/p/449158.html
Copyright © 2011-2022 走看看