Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.0 (中文) » SQL Anywhere 服务器 - 编程 » .NET 应用程序编程 » 教程:使用 SQL Anywhere .NET 数据提供程序 » 使用 Simple 代码示例

 

了解 Simple 示例项目

本节通过介绍 Simple 代码示例中的部分代码,来说明 SQL Anywhere .NET 数据提供程序的一些主要功能。Simple 代码示例使用 SQL Anywhere 示例数据库 demo.db,该数据库位于 SQL Anywhere 示例目录中。

有关 SQL Anywhere 示例目录位置的信息,请参见示例目录

有关示例数据库的信息(包括数据库中的表和它们之间的关系),请参见SQL Anywhere 示例数据库

本节以一次多行的形式来介绍代码。此处并未包括示例中的所有代码。要查看所有代码,请打开 samples-dir\SQLAnywhere\ADO.NET\SimpleWin32 中的示例项目。

声明控件   下面的代码声明了一个名为 btnConnect 的按钮和一个名为 listEmployees 的列表框。

private System.Windows.Forms.Button btnConnect;
private System.Windows.Forms.ListBox listEmployees;

连接到数据库   btnConnect_Click 方法声明并初始化一个 SAConnection 连接对象。

private void btnConnect_Click(object sender,
   System.EventArgs e)
   SAConnection conn = new SAConnection(
    "Data Source=SQL Anywhere 12 Demo;UID=DBA;PWD=sql" );

SAConnection 对象在调用 Open 方法时使用连接字符串连接到 SQL Anywhere 示例数据库。

conn.Open();

有关 SAConnection 对象的详细信息,请参见SAConnection 类

定义查询   使用 SACommand 对象来执行 SQL 语句。以下代码使用 SACommand 构造函数声明并创建一个命令对象。此构造函数接受表示要执行的查询的字符串,以及表示在其上执行查询的连接的 SAConnection 对象。

SACommand cmd = new SACommand(
     "SELECT Surname FROM Employees", conn );

有关 SACommand 对象的详细信息,请参见SACommand 类

显示结果   使用 SADataReader 对象来获取查询的结果。以下代码使用 ExecuteReader 构造函数声明并创建一个 SADataReader 对象。此构造函数是以前声明的 SACommand 对象 cmd 的成员。ExecuteReader 将命令文本发送到连接以用于执行并构建一个 SADataReader。

SADataReader reader = cmd.ExecuteReader();

下面的代码循环检查保存在 SADataReader 对象中的行并将它们添加到列表框控件中。每次调用 Read 方法时,数据读取器都会从结果集中获取另一行。并在列表框中为读取到的每个行添加一个新项目。数据读取器使用带有参数 0 的 GetString 方法,从结果集的行中获取第一列。

listEmployees.BeginUpdate();
while( reader.Read() ) {
     listEmployees.Items.Add( reader.GetString( 0 ) );
}
listEmployees.EndUpdate();

有关 SADataReader 对象的详细信息,请参见SADataReader 类

完成   位于该方法末的以下代码将关闭数据读取器和连接对象。

reader.Close();
conn.Close();

错误处理   所有在执行期间发生并且源自 SQL Anywhere .NET 数据提供程序对象的错误均通过在窗口中显示错误消息来处理。以下代码捕获错误并显示其消息:

catch( SAException ex ) {
    MessageBox.Show( ex.Errors[0].Message );
}

有关 SAException 对象的详细信息,请参见SAException 类