演练:使用 SQL Server CE 数据库

Visual Studio .NET 2003

本节将指导您完成使用 Microsoft SQL Server 2000 Windows CE Edition (SQL ServerCE) 数据库时需要执行的主要任务。假定您没有任何 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) .NETFramework 精简版数据提供程序的 SqlCeConnectionSqlCeEngineSqlCeCommand 类。

注意   不能在此任务中运行仅用于特定步骤的代码。有关完整代码列表,请参见代码列表:使用 SQL Server CE 数据库

创建新的 SQL Server CE 数据库

1.     启动 Visual Studio .NET,然后打开一个新项目。

2.     创建对使用的命名空间的引用。

复制

using System;

using System.IO;

using System.Text;

using System.Data;

usingSystem.Data.SqlServerCe;

usingSystem.Collections;

usingSystem.Windows.Forms;

usingSystem.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 = newSqlCeEngine ("Data Source = Test.sdf");

            engine.CreateDatabase ();

6.     连接到这个新数据库。

复制

conn = newSqlCeConnection ("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 语法。有关更多信息,请参见《SQLServer 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 = "INSERTINTO TestTbl(col1, col2, col3) VALUES (?, ?, ?)";

 

cmd.Parameters.Add(newSqlCeParameter("p1", SqlDbType.Int));

cmd.Parameters.Add(newSqlCeParameter("p2", SqlDbType.NText));

cmd.Parameters.Add(newSqlCeParameter("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 语法。有关更多信息,请参见《SQLServer CE 联机手册》中的用于 SQL Server CE SQL 参考

复制

cmd.Parameters.Clear();

//Set the command textto 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 语法。有关更多信息,请参见《SQLServer 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 voidShowErrors(SqlCeException e)

    {

        SqlCeErrorCollection errorCollection =e.Errors;

 

        StringBuilder bld = newStringBuilder();

 

        foreach (SqlCeError err inerrorCollection)

        {

            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 inerr.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 联机手册》中的错误处理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值