HOW TO:在 Visual Basic .NET 中使用 ADO.NET 获取下层提供程序错误

本文的发布号曾为 CHS308043
本文已归档。它按“原样”提供,并且不再更新。
有关本文的 Microsoft Visual C# .NET 版本,请参见 308650
有关本文的 Microsoft Visual C++ 版本,请参见 308651

本文引用下面的 Microsoft .NET 框架类库名称空间:
  • System.Data.OleDb

本任务的内容

概要
托管提供程序可能会产生几个异常。如想获取关于其产生原因方面的更详细的信息,您需要访问提供程序的特定错误信息。本文讨论在 Visual Basic .NET 中使用 ADO.NET 时如何获取基层提供程序错误。

返回页首

要求

下面的列表列出了推荐使用的硬件、软件、网络基础结构以及所需的服务包:
  • Microsoft .NET 框架
  • Microsoft Visual Basic .NET
本文假定您熟悉以下主题:
  • 异常
  • Microsoft OLE DB
  • 错误处理
返回页首

重现基层提供程序错误的步骤

若要获得有关异常产生原因的更多详细信息,可以将您的代码封装在一个 try-catch 块中,捕获异常,并处理来自 OleDbException 类的 Errors 集合。
  1. 启动 Microsoft Visual Studio .NET,然后在 Visual Basic .NET 中新建一个 Windows 应用程序项目。默认情况下将创建 Form1。
  2. 以代码形式打开 Form1.vb,复制以下代码并将其粘贴到窗体开头:
    Imports System.Data.OleDb
  3. 将下面的代码复制到 Form1 的 Load 事件:
    Dim ex As OleDbExceptionDim cn As OleDbConnection = New OleDbConnection("Provider=SQLOLEDB.1;Data Source=MyWrongServerName")Trycn.Open()Catch exDim i As IntegerFor i = 0 To ex.Errors.Count - 1MessageBox.Show("Index #" + i.ToString() + ControlChars.Cr _+ "Message:" + ex.Errors(i).Message + ControlChars.Cr _+ "Native:" + ex.Errors(i).NativeError.ToString() + ControlChars.Cr _+ "Source:" + ex.Errors(i).Source + ControlChars.Cr _+ "SQL:" + ex.Errors(i).SQLState + ControlChars.Cr)Next iEnd Try
  4. 运行该应用程序。10 至 15 秒之后应出现一个消息框。
返回页首

疑难解答

如果您有一个名为"MyWrongServerName"服务器,可能收不到错误。

返回页首
参考
有关 .NET 托管提供程序的更多信息,请参阅以下 MSDN Web 站点:返回页首
属性

文章 ID:308043 - 上次审阅时间:02/26/2014 18:10:24 - 修订版本: 1.0

Microsoft ADO.NET(随 .NET 框架一起提供), Microsoft Visual .NET 2002 标准版

  • kbnosurvey kbarchive kbhowto kbhowtomaster kbsystemdata kboledb KB308043
反馈