下面是一个简单的 ADO.NET 应用程序,它从数据源中返回结果并将输出写至控制台或命令提示符窗口。通过 ADO.NET 访问数据中提供的示例代码的大部分都可以放入利用此示例创建的模板,以查看特定 ADO.NET 功能的工作示例。
本主题中的示例代码显示 ADO.NET 应用程序中包含的典型命名空间。对 SQL Server .NET Framework 数据提供程序 (System.Data.SqlClient)、OLE DB .NET Framework 数据提供程序 (System.Data.OleDb)、ODBC .NET Framework 数据提供程序 (System.Data.Odbc) 和 Oracle .NET Framework 数据提供程序 (System.Data.OracleClient),均提供了示例。如果需要,所有数据提供程序都可以在单个的应用程序中使用。
以下示例连接到 Microsoft SQL Server 2000 上的 Northwind 数据库,并使用 DataReader(有关 DataReader 更多信息,请参见使用 DataReader 检索数据)返回一个类别列表。
编译和运行 ADO.NET 示例应用程序
- 使用“记事本”(Notepad) 或其他文本编辑器,为 Visual Basic 示例代码创建一个名为 sample.vb 的空白文本文件或为 C# 示例代码创建一个名为 sample.cs 的空白文本文件。
- 复制本主题中的 Visual Basic 或 C# 示例代码并将其粘贴到空白文本文件中。保存该文件。
- 打开一个命令提示符窗口(先按“开始”,再按“运行”,然后输入“command”)。
- 在命令提示符窗口中,将目录更改为包含新文本文件的目录。例如:
cd/SampleCode/ADONETSample
- 在命令提示符窗口中,输入以下命令之一以编译该示例(文件的路径可能会有所不同)。
- 对于 Visual Basic,使用 vbc.exe 并使用以下命令来引用运行 ADO.NET 应用程序所需的系统库。
vbc.exe sample.vb /r:System.dll /r:System.Data.dll /r:System.Data.OracleClient.dll /r:System.Xml.dll
- 对于 C#,使用 csc.exe 并使用以下命令来引用运行 ADO.NET 应用程序所需的系统库。
csc.exe sample.cs /r:System.dll /r:System.Data.dll /r:System.Data.OracleClient.dll /r:System.Xml.dll
- 编译器将创建一个名为 sample.exe 的可执行文件。在命令提示符处输入“sample.exe”以运行已编译的示例。
SqlClient
[C#]
using System;
using System.Data;
using System.Data.SqlClient;
class Sample
{
public static void Main ()
{
SqlConnection nwindConn = new SqlConnection("Data Source=localhost;Integrated Security=SSPI;Initial Catalog=northwind");
SqlCommand catCMD = nwindConn.CreateCommand();
catCMD.CommandText = "SELECT CategoryID, CategoryName FROM Categories";
nwindConn.Open();
SqlDataReader myReader = catCMD.ExecuteReader();
while (myReader.Read())
{
Console.WriteLine("/t{0}/t{1}", myReader.GetInt32(0), myReader.GetString(1));
}
myReader.Close();
nwindConn.Close();
}
}
OleDb
[C#]
using System;
using System.Data;
using System.Data.OleDb;
class Sample
{
public static void Main ()
{
OleDbConnection nwindConn = new OleDbConnection("Provider=SQLOLEDB;Data Source=localhost;Integrated Security=SSPI;Initial Catalog=northwind");
OleDbCommand catCMD = nwindConn.CreateCommand();
catCMD.CommandText = "SELECT CategoryID, CategoryName FROM Categories";
nwindConn.Open();
OleDbDataReader myReader = catCMD.ExecuteReader();
while (myReader.Read())
{
Console.WriteLine("/t{0}/t{1}", myReader.GetInt32(0), myReader.GetString(1));
}
myReader.Close();
nwindConn.Close();
}
}
Odbc
[C#]
using System;
using System.Data;
using System.Data.Odbc;
class Sample
{
public static void Main ()
{
OdbcConnection nwindConn = new OdbcConnection("Driver={SQL Server};Server=localhost;" +
"Trusted_Connection=yes;Database=northwind");
OdbcCommand catCMD = new OdbcCommand("SELECT CategoryID, CategoryName FROM Categories", nwindConn);
nwindConn.Open();
OdbcDataReader myReader = catCMD.ExecuteReader();
while (myReader.Read())
{
Console.WriteLine("/t{0}/t{1}", myReader.GetInt32(0), myReader.GetString(1));
}
myReader.Close();
nwindConn.Close();
}
}
OracleClient
[C#]
using System;
using System.Data;
using System.Data.OracleClient;
class Sample
{
public static void Main ()
{
OracleConnection oraConn = new OracleConnection("Data Source=MyOracleServer;Integrated Security=yes;");
OracleCommand oraCMD = new OracleCommand("SELECT CUSTOMER_ID, NAME FROM DEMO.CUSTOMER", oraConn);
oraConn.Open();
OracleDataReader myReader = oraCMD.ExecuteReader();
while (myReader.Read())
{
Console.WriteLine("/t{0}/t{1}", myReader.GetInt32(0), myReader.GetString(1));
}
myReader.Close();
oraConn.Close();
}
}