您好,欢迎来到爱玩科技网。
搜索
您的当前位置:首页SQLCE数据库操作总结

SQLCE数据库操作总结

来源:爱玩科技网


创建新的数据库

SQL Server CE 中的数据库是存储结构化数据的表集合。在可以存储数据库之前,必须创建数据库。在创建数据库之后,可以创建保存数据的表。

在本节中,您将创建一个新的数据库,然后创建一个表,最后将数据添加到该表中。若要执行这些步骤,请使用 SQL Server CE (System.Data.SqlServerCe) .NET Framework 精简版数据提供程序的 SqlCeConnection、SqlCeEngine 和 SqlCeCommand 类。

注意 不能在此任务中运行仅用于特定步骤的代码。有关完整代码列表,请参见代码列表:使用 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 执行此任务,您需要 SqlCeDataReader 和 SqlCeCommand 对象。

注意 有关完整代码列表,请参见代码列表:使用 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 数据库中的数据

在创建表后,可以以多种方式修改表中的数据:更改特定数据的属性,添加和删除数据行,甚至还可以通过修改表中的列来更改存储数据的方式。

在本节中,您将更改表项的值,查找更改的表的数据并处理所有错误。为执行这些步骤,您将使用在前面的任务中使用的类: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 表中的数据

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);

}

r);

}

}

}

foreach (string errPar in err.ErrorParameters)

{

if (String.Empty != errPar) bld.Append(\"\\n Err. Par. : \" + errPa}

MessageBox.Show(bld.ToString());

bld.Remove(0, bld.Length);

有关 SQL Server CE 中的错误处理的更多信息,请参见《SQL Server CE 联机手册》中的错误处理。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- aiwanbo.com 版权所有 赣ICP备2024042808号-3

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务