`
allenice
  • 浏览: 23243 次
  • 性别: Icon_minigender_1
  • 来自: 大连
最近访客 更多访客>>
社区版块
存档分类
最新评论

关于vb.net存取oracle数据库(转)

阅读更多
關於 VB.Net 存取 Oracle 資料庫



介紹 4 種 VB.Net 存取 Oracle 資料庫的基本寫法



u          傳統的 ADO Connection 開 Recordset 並把資料 “餵給” 新一代 ADO.Net 的 DataSet 並做資料存取

u          ADO.Net 運用 OleDb 類別的 Connection , DataAdapter , Dataset , Command 等物件做處理資料

u          ADO.Net 運用 Oracle 類別的 Connection , DataAdapter , Dataset , Command 等物件做處理資料

u          ADO.Net 運用 ODBC 類別的 Connection , DataAdapter , Dataset , Command 等物件做處理資料





請先加入參考 System.Data 及 System.Data.OracleClient



' 匯入名稱空間

Imports System.Data

Imports System.Data.Odbc

Imports System.Data.OleDb

Imports System.Data.OracleClient

Imports System.Runtime.InteropServices



Public Class Form1



    ' Oracle SID 登錄資訊 , 請自行調整

    Private strDSN As String = "資料來源"

    Private strUID As String = "使用者"

    Private strPWD As String = "密碼"



    ' Oracle OLEDB 連線字串

    Private strCN As String = "Provider=MSDAORA.1" & _

                                                    ";Data Source=" & strDSN & _

                                                    ";User ID=" & strUID & _

                                                    ";Password=" & strPWD



    ' SQL 語法, 查詢資料用( Select )

    Private strQry As String = "select * from 某Table" ' 請自行調整



    ' SQL 語法, 更新資料用( Insert / Update )

    Private strSQL As String = "Insert Into Table .. 或 Update Table Set .. " ' 請自行調整





' ================================================================





    ' 方法 1 :

    ' 使用 ADO 物件 , 透過 ADODB.Connection 開啟 ADODB.Recordset

    ' 並將 Recordset ( ADO ) 中之資料填入 Dataset ( ADO.Net ) 中

    Private Sub Button2_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button2.Click



        ' ADODB.Connection 為 ADO 連線物件之 ProgID 

        ' Type.GetTypeFromProgID 方法: 根據ProgID 取得物件的型別



        Dim cn As Object = Activator.CreateInstance(Type.GetTypeFromProgID("ADODB.Connection"))



        ' Activator 成員 : 建立物件型別的方法,或取得對現有遠端物件的參考。

        ' Activator.CreateInstance 方法( 建構函式 ) : 建立指定型別之物件執行個體。

        ' 語法 : 物件 = Activator.CreateInstance(Type)



        ' 或 Dim cn As Object = CreateObject("ADODB.Connection")

        ' CreateObject 建構函式 : 建立並傳回 COM 物件的參考 ( 類別明確公開的 COM 元件 )



        cn.CursorLocation = 3 ' adUseClient

        cn.Open(strCN) ' 開啟連線物件 ( 連上 Oracle )

       

        Dim rs As Object = cn.Execute(strQry) ' Select 資料

        ' Connection 物件.Execute 方法 : 執行指定的查詢、SQL 陳述式、預存程序。



        Dim ds As New DataSet ' 建立資料集物件執行個體

        Dim da As New OleDbDataAdapter ' 建立資料配接器物件執行個體



        ' 呼叫 DataAdapter.Fill 方法將資料填入資料集中

        da.Fill(ds, rs, "Table1") ' Table1 為資料表格名稱 , 可自行調整命名

        ' 參數分別是資料集 ( Dataset ) , 資料錄集 ( Recordset ) , 資料表名稱 ( Table Name )



        ' 將資料集中資料表格的資料 Binding 至 DataGridView 以顯示資料

        DataGridView1.DataSource = ds.Tables(0)



        ' 新增資料到資料庫中

        cn.Execute(strSQL) ' Insert / Update 資料

        ' Connection物件.Execute 方法 : 執行指定的查詢、SQL 陳述式、預存程序。



        da.Dispose() ' 釋放 Component 所使用的所有資源。

        cn.Close() ' 關閉 Connection 物件之資料庫連線



        ' 釋放 Com 物件所使用的資源 , 遞減執行階段所呼叫包裝函式 ( RCW ) 的參考次數。

        Marshal.ReleaseComObject(rs)

        Marshal.ReleaseComObject(cn)



        ' MSDN 說明 :

        ' 當 COM 介面指標進入 Common Language Runtime 時,

        ' 會被包裝在執行階段可呼叫的包裝函式中。

        ' ReleaseComObject 方法被用來控制 Managed Code 中 COM 物件的生命週期 ( Lifetime ) 。

        ' 當COM 物件存有資源參考,或物件須釋放時,使用這個方法釋放 COM 物件。



        GC.Collect() ' 強制記憶體回收



    End Sub





' ================================================================





    ' 方法 2 :

    ' 使用 OleDb 類別的 Connection , DataAdapter , Command 物件來做 Oracle 資料處理

    Private Sub Button3_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button3.Click



        Dim cn As New OleDbConnection(strCN) ' 個體化 OleDb 連線物件

        Dim da As New OleDbDataAdapter(strQry, cn) ' 個體化 OleDb 資料配接器

        Dim ds As New DataSet ' 個體化資料集



        da.Fill(ds)  ' 使用資料配接器, 將資料填至資料集



        ' 將資料顯示於 DataGridView

        DataGridView1.DataSource = ds.Tables(0)



        cn.Open() ' 開啟資料庫連線



        ' 新增資料到資料庫中

        Dim cmd As New OleDbCommand(strSQL, cn) ' 個體化 OleDb 命令物件

        cmd.ExecuteNonQuery() ' 執行 SQL 命令 ( SQL Pass-through )



        ' 釋放資源

        cmd.Dispose()

        da.Dispose()

        cn.Close()

        cn.Dispose()



    End Sub





' ================================================================





    ' 方法 3 :

    ' 使用 Oracle 類別的 Connection , DataAdapter , Command 物件來做 Oracle 資料處理

    Private Sub Button4_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button4.Click



        ' OracleConnection 類別連線字串

        Dim strCN As String = "Data Source=" & strDSN & _

                                                    ";User ID=" & strUID & _

                                                    ";Password=" & strPWD & _

                                                    ";Persist Security Info=True"



        Dim cn As New OracleConnection(strCN) ' 建立 OracleConnection 執行個體

        Dim da As New OracleDataAdapter(strQry, cn) ' 建立 OracleDataAdapter 執行個體

        Dim ds As New DataSet ' 建立 Dataset 執行個體



        da.Fill(ds) ' 將資料填至資料集

        DataGridView1.DataSource = ds.Tables(0) '  顯示資料於 DataGridView



        cn.Open()  ' 連線資料庫

        Dim cmd As New OracleCommand(strSQL, cn) ' 建立 OracleCommand 執行個體

        cmd.ExecuteNonQuery() ' 執行查詢, 新增資料



        ' 釋放資源

        cmd.Dispose()

        da.Dispose()

        cn.Close()

        cn.Dispose()



    End Sub





' ================================================================





    ' 方法 4 :

    ' 使用 ODBC 類別的 Connection , DataAdapter , Command 物件來做 Oracle 資料處理

    Private Sub Button5_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button5.Click



        ' Oracle ODBC 驅動程式名稱

        Dim strOracleDriver As String = "Oracle in OraDb10g_home1" ' 請自行調整



        ' PS: Oracle 的 ODBC Driver 會因 Oracle 版本不同而異 ( Driver 也不同 )

        '    M$ 提供的 Oracle Driver 為 Microsoft ODBC for Oracle

        '    Oracle 提供的 Native Driver :

        '    8i 為 Oracle ODBC Driver

        '    9i 為 Oracle in OraHome9X ( X 為 0 或 1 或 2 , 3 ... )

        '    10g 版本 Driver 為 Oracle in OraDb10g_home1

        '    可於 [ ODBC 資料來源管理員] 中查看 ( ODBCAD32.exe )



        ' Oracle ODBC 資料庫連線字串

        Dim strCN As String = "DRIVER={" & strOracleDriver & "}" & _

                                                    ";DBQ=" & strDSN & _

                                                    ";UID=" & strUID & _

                                                    ";PWD=" & strPWD



        Dim cn As New OdbcConnection(strCN) ' 建立 OdbcConnection 執行個體

        Dim da As New OdbcDataAdapter(strQry, cn) ' 建立 OdbcDataAdapter 執行個體

        Dim ds As New DataSet ' 建立 DataSet 執行個體



        da.Fill(ds) ' 將資料填至資料集

        DataGridView1.DataSource = ds.Tables(0) '  顯示資料於 DataGridView



        cn.Open()  ' 連線資料庫

        Dim cmd As New OdbcCommand(strSQL, cn) ' 建立 OdbcCommand 執行個體

        cmd.ExecuteNonQuery() ' 執行查詢, 新增資料



        ' 釋放資源

        cmd.Dispose()

        da.Dispose()

        cn.Close()

        cn.Dispose()



    End Sub



End Class





' ================================================================





另外 , 也可以使用 Oracle 公司所提供的 ODP.Net



Oracle Data Provider for .NET



請參考Oracle 官方網站 http://www.oracle.com/technology/tech/windows/odpnet/index.html



分享到:
评论

相关推荐

    vb.net操作Oracle数据库1

    在VB.NET中操作Oracle数据库,通常需要借助ADO.NET或ADODB组件来实现数据的存取。这个示例中,开发者创建了一个简单的员工管理窗体应用,通过Datagridview控件展示Oracle数据库中的员工数据。以下是具体步骤和相关...

    vb.net数据库连接ppt

    这篇PPT主要讲解了VB.NET中如何连接和操作数据库,特别是Oracle和SQL等数据库。以下是详细的知识点解释: 1. **ADO.NET概述**:ADO.NET是.NET Framework的一部分,它提供了一组类库用于处理数据库连接、查询和数据...

    第8章-VB.NET与数据库应用程序_Z_New.ppt

    第8章-VB.NET与数据库应用程序的探讨主要围绕ADO.NET技术展开,这是一项重要的数据库访问技术,由微软提出,旨在实现通用数据存取(UDA),让开发者能够从各种应用程序访问不同类型的数据库源,如Oracle、SQL Server...

    第8章-VB.NET与数据库应用程序10-10-25.ppt

    【VB.NET与数据库应用程序】 本章内容主要围绕VB.NET如何与数据库进行交互,特别是通过ADO.NET技术实现数据访问。ADO.NET是微软.NET框架的一部分,它提供了高效、灵活且可扩展的方式来处理各种数据源,包括SQL ...

    VB.NET数据库程序开发.ppt

    以下是关于VB.NET数据库程序开发的关键知识点: 1. **三层架构**:数据库应用系统通常采用三层架构,包括数据层、数据访问层和表示层。数据层负责数据的存储和管理,数据访问层通过ADO.NET进行数据传输和访问,而...

    Visual Basic 2005文件IO与数据存取秘诀(数据库连接)

    在编程领域,Visual Basic .NET (VB.NET) 是一种强大的编程语言,特别是在处理文件I/O(输入/输出)和数据库连接方面。本篇文章将深入探讨使用Visual Basic 2005进行文件操作和数据存取的秘诀,以及如何有效地连接到...

    mysql,sqlserver,oracle的数据库驱动

    对于.NET开发者,MySQL提供了MySQL .NET Connector,使C#或VB.NET应用能够轻松连接MySQL。 SQL Server驱动: 微软的SQL Server数据库同样提供了多样化的驱动选择。对于.NET开发者,有SQL Server Native Client...

    网站 数据库 asp.net

    它支持多种编程语言,如C#、VB.NET等,并且与.NET Framework紧密集成,提供了丰富的功能和工具来简化开发过程。 【描述】:“学籍管理 website1 20131126 1724jquery后” 描述中的“学籍管理”可能是指一个基于ASP...

    数据库技术与应用第8章-VBNET与数据库应用程序.ppt

    5. **数据提供程序的选择**:在使用Dataset之前,需要选择适合的DataProvider,因为不同的数据库可能需要不同的数据提供程序,如SqlClient(用于SQL Server)、OracleClient(用于Oracle数据库)等。 6. **数据库...

    .NET数据访问类

    VB.NET作为.NET平台上的编程语言,提供了丰富的数据访问类和组件,使得开发人员能够轻松地处理数据库操作。本知识点将深入探讨.NET数据访问类在VB.NET中的应用。 首先,我们要了解ADO.NET,它是.NET Framework的...

    oracle mysql sqlServer 数据库 驱动

    Oracle数据库是甲骨文公司开发的企业级数据库系统,以其高度可扩展性和安全性著称。Oracle驱动,通常指的是JDBC驱动(Java Database Connectivity),分为thin和thick两种模式。Thin驱动是纯Java实现,轻量级且无需...

    mysql,oracle,sql server2000,sql server2005数据库驱动

    Oracle数据库是甲骨文公司的旗舰产品,是一款功能强大的企业级数据库系统。Oracle驱动包括ODBC驱动、JDBC驱动(如 Thin、Thin Net 和 OCI)以及.NET Framework中的Oracle Data Provider for .NET。这些驱动支持多种...

    存取数据库图片

    例如,在VB.NET中,可以使用`MemoryStream`和`pictureBox1.Image = Image.FromStream()`来实现。 7. **性能优化**:由于图片文件可能很大,直接在数据库中处理可能会降低性能。一种常见优化策略是先将图片压缩后再...

    VBeXpress.Net.v2.01

    "VBeXpress.Net.v2.01" 提供了一种高效的方法,它能够根据数据库表结构自动生成对应的C#或VB.NET代码,包括但不限于实体类、数据访问接口以及实现。这不仅简化了开发流程,也减少了因人为错误导致的bug。 【标签】...

    数据库驱动

    Oracle还提供了ODAC(Oracle Data Access Components)针对.NET环境,以及Oracle Instant Client,一种轻量级的客户端组件,用于连接远程Oracle数据库。 链接字符串配置是连接数据库时必需的,它包含了数据库服务器...

    EF+Unity+MVC+Oracle框架

    Entity Framework是微软提供的一个对象关系映射(ORM)框架,它允许开发者使用.NET语言(如C#或VB.NET)来操作数据库,而无需编写SQL语句。通过EF,开发人员可以创建数据模型,该模型与数据库表进行映射,从而简化...

    VC++数据库编程总结

    7. Oracle专用方法:如OCI和Oracle Object OLE C++ Class Library,专门针对Oracle数据库,提供了高效的Oracle数据访问接口。 在实际开发中,选择哪种方法取决于项目需求,如性能、可维护性、数据库兼容性和开发...

    基于.NET乙烯原料运输车辆管理系统的设计.docx

    **ASP.NET与Visual Studio**:ASP.NET是一种服务器端的Web应用程序框架,支持多种编程语言,包括C#和VB.NET等。Visual Studio则是微软提供的集成开发环境,集成了多种工具和服务,支持.NET应用程序的开发。通过这两...

Global site tag (gtag.js) - Google Analytics