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

文章翻译 文章翻译
文章编号: 308043 - 查看本文应用于的产品
本文的发布号曾为 CHS308043
本文已归档。它按“原样”提供,并且不再更新。
展开全部 | 关闭全部

本文内容

概要

托管提供程序可能会产生几个异常。如想获取关于其产生原因方面的更详细的信息,您需要访问提供程序的特定错误信息。本文讨论在 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 OleDbException
    Dim cn As OleDbConnection = New OleDbConnection("Provider=SQLOLEDB.1;Data Source=MyWrongServerName")
    Try
    cn.Open()
    Catch ex
    Dim i As Integer
    For i = 0 To ex.Errors.Count - 1
    MessageBox.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 i
    End Try
  4. 运行该应用程序。10 至 15 秒之后应出现一个消息框。

疑难解答

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


参考

有关 .NET 托管提供程序的更多信息,请参阅以下 MSDN Web 站点:
Inside .NET Managed Providers(托管提供程序剖析)
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dndive/html/data010112001.asp

属性

文章编号: 308043 - 最后修改: 2014年2月26日 - 修订: 1.0
这篇文章中的信息适用于:
  • Microsoft ADO.NET(随 .NET 框架一起提供)
  • Microsoft Visual .NET 2002 标准版
关键字:?
kbnosurvey kbarchive kbhowto kbhowtomaster kbsystemdata kboledb KB308043
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com