本节将指导您完成使用 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 精简版数据提供程序的 SqlCeConnection、SqlCeEngine和 SqlCeCommand类。 注意 不能在此任务中运行仅用于特定步骤的代码。有关完整代码列表,请参见代码列表:使用 SQL Server CE 数据库。 创建新的 SQL Server CE 数据库 启动 Visual Studio .NET,然后打开一个新项目。 创建对使用的命名空间的引用。 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; 创建 WalkThrough类。 public class WalkThrough { static void Main() { SqlCeConnection conn = null; try { 验证具有您打算使用的名称的数据库是否已存在。 if (File.Exists (Test.sdf) ) File.Delete (Test.sdf); 使用 System.Data.SqlCeEngine对象创建名为 Test.sdf 的空数据库。 注意 SQL Server CE 中,数据库名称的文件扩展名为 .sdf。 SqlCeEngine engine = new SqlCeEngine (Data Source = Test.sdf); engine.CreateDatabase (); 连接到这个新数据库。 conn = new SqlCeConnection (Data Source = Test.sdf); conn.Open(); 创建新表 使用 System.Data.SqlCeCommand创建命令类的实例。 SqlCeCommand cmd = conn.CreateCommand(); 运行命令 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(); 将数据添加到新表中 运行命令以添加数据行。与创建表相同,用于添加行的指令也必须在 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(); 创建命令,使用参数将数据多次插入表中。 参数可以更高效地查询数据库,因为可以使用一组包含参数的 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(); 执行参数化命令,将数据插入表中。 cmd.Parameters[p1].Value = 1; cmd.Parameters[p2].Value = abc; cmd.Parameters[p3].Value = 15.66; cmd.ExecuteNonQuery(); 清除参数,并检查已插入表中的数据。 若要使用 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执行此任务,您需要 SqlCeDataReader和 SqlCeCommand对象。 注意 有关完整代码列表,请参见代码列表:使用 SQL Server CE 数据库。 调用 SqlCeCommand对象的 ExecuteReader方法以创建 SqlCeDataReader的实例。 SqlCeDataReader rdr = cmd.ExecuteReader(); 指示数据读取器 rdr在行存在时在每行的列中显示数据。 while (rdr.Read()) {MessageBox.Show(col1 = + rdr.GetInt32(0) + col2 = + rdr.GetString(1) + col3 = + rdr.GetSqlMoney(2)); } 更改 SQL Server CE 数据库中的数据 在创建表后,可以以多种方式修改表中的数据:更改特定数据的属性,添加和删除数据行,甚至还可以通过修改表中的列来更改存储数据的方式。 在本节中,您将更改表项的值,查找更改的表的数据并处理所有错误。为执行这些步骤,您将使用在前面的任务中使用的类:SqlCeCommand和 SqlCeDataReader。另外,您将使用 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 表中的数据 设置命令对象以使用 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)); } } 使用 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 联机手册》中的错误处理。 原文:http://msdn.microsoft.com/library/CHS/dv_evtuv/html/etconwalkthroughcreatingsqlservercedatabase.asp
创建SQLCE数据库
最新推荐文章于 2023-06-29 14:30:22 发布