本文的发布号曾为 CHS311274
有关本文的 Microsoft Visual Basic .NET 版本,请参见
309490。
本文引用下面的 Microsoft .NET 框架类库名称空间:
本文引用下面的 Microsoft .NET 框架类库名称空间:
- System.Data.OleDb
- System.Data.SqlClient
本任务的内容
概要
本文讲述一个一般的函数,可用它来处理由存储过程或在执行批处理 SQL 语句时返回的多个记录集和其他消息。返回页首
技术说明
ActiveX 数据对象 (ADO) 可从服务器接收 5 种不同类型的数据:- 记录集
- 由操作查询(如 INSERT、UPDATE、DELETE 或 SELECT INTO)修改的记录数
- 信息性消息或警告
- 错误信息
- 存储过程返回值和输出参数
返回页首
要求
下面的列表列出了推荐使用的硬件、软件、网络结构以及所需的 Service Pack:- Microsoft Windows 2000 Professional、Windows 2000 Server、Windows 2000 Advanced Server 或 Windows NT 4.0 Server
- Microsoft Visual Studio .NET
- Microsoft SQL Server 7.0 或更高版本
- Visual Studio .NET
- ADO.NET 基础和语法
创建项目和添加代码
此示例代码使用 SQL Server Pubs 示例数据库的 Authors 表。- 将下列语句粘贴到"SQL 查询分析器"工具或 ISQL 实用工具中:
CREATE PROC MyProc AS SELECT * FROM Authors SELECT * FROM Authors WHERE State = 'CA' GO
- 启动 Visual Studio .NET。
- 在 Visual C# .NET 中新建一个 Windows 应用程序项目。默认情况下会将 Form1 添加到项目中。
- 确保您的项目包含一个对 System.Data 名称空间的引用,如果未包含,请添加一个对此名称空间的引用。
- 将一个命令按钮放到 Form1 上。将按钮的 Name 属性更改为 btnTest,将 Text 属性更改为 Test。
- 针对 System、System.Data.OleDb 和 System.Data.SqlClient 名称空间使用 Imports 语句,这样以后就不需要在代码中限定这些名称空间中的声明了。将以下代码添加到 Form1 的"General Declarations"部分中:
using System; using System.Data.OleDb; using System.Data.SqlClient;
- 将以下代码添加到 btnTest_Click 事件中:
String myConnString = "User ID=sa;password=sa;Initial Catalog=pubs;Data Source=myServer"; SqlConnection myConnection = new SqlConnection(myConnString); SqlCommand myCommand = new SqlCommand(); SqlDataReader myReader ; myCommand.CommandType = CommandType.StoredProcedure; myCommand.Connection = myConnection; myCommand.CommandText = "MyProc"; int RecordCount=0; try { myConnection.Open(); myReader = myCommand.ExecuteReader(); while (myReader.Read()) { //Write logic to process data for the first result. RecordCount = RecordCount + 1; } MessageBox.Show("Total number of Authors:" + RecordCount.ToString()); myReader.NextResult(); RecordCount = 0; while (myReader.Read()) { //Write logic to process data for the second result. RecordCount = RecordCount + 1; } MessageBox.Show("Authors from California:" + RecordCount.ToString()); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } finally { myConnection.Close(); }
- 根据您的环境相应地修改连接字符串 (myConnString)。
- 保存项目。在调试菜单上,单击开始以运行您的项目。
- 单击测试。您会注意到,消息框中显示出了存储过程返回的数据。
参考
有关调用存储过程的其他信息,请单击下面的文章编号以查看 Microsoft 知识库中的文章:306574 HOW TO:在 ASP.NET 中调用 SQL Server 存储过程
有关错误处理的其他信息,请单击下面的文章编号以查看 Microsoft 知识库中的文章:308650 HOW TO:在 Visual C# .NET 中使用 ADO.NET 获得基础提供程序错误
有关参数和存储过程的其他信息,请单击下面的文章编号以查看 Microsoft 知识库中的文章:308621 PRB:在 Visual C# .NET 中运行 ADO.NET 命令时未返回输出参数
有关 ADO.NET 对象和语法的更多信息,请参阅以下 Microsoft .NET 框架软件开发工具包 (SDK) 文档:使用 ADO.NET 访问数据
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconaccessingdatawithadonet.asp
这篇文章中的信息适用于:
- Microsoft ADO.NET(随 .NET 框架一起提供)
- Microsoft Visual C# .NET (2002)
最近更新: | 2002-6-18 (1.0) |
关键字 | kbDSupport kbGrpDSMDAC kbGrpDSVBDB kbhowto kbHOWTOmaster kbSqlClient kbSystemData KB311274 |