正文

VB.NET 对 Oracle 数据库的访问策略2006-12-01 12:57:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/sgpro/21137.html

分享到:

关键字:VB.NET, 数据库编程, Oracle,  DataSet, DataGrid, DataAdapter, OracleConnection 简介:    VB.NET 同样使用 .NET数据库组件,这和.NET FrameWork支持的其他语言上没有区别。只是语法上的差异。    对Oracle数据库的访问, .NET FrameWork提供了两种方法,一种是使用Ado.Net,另一种是OracleConnection 套件。 类似于微软专门为Sql Server提供的 SqlDataConnection。 两种方法非常类似。下面只介绍 OracleConnection.    1、先创建 OracleConnection对象, 使用连接字符串连接到指定数据库。    2、建立OracleDataAdpter  或者 OracleDataCommand. 构造参数为连接对象,sql语句    3、建立DataSet或者 OracleDataReader 读取OracleDataAdpter和OracleDataCommand采集的数据。 DataSet可以集合多张表。    一下是一个具体的实例程序: ================================= ' Copyright (C)  2006-11  sgpro Imports System.Data.OracleClient.OracleDataAdapterImports System.Data.DataSet   Public Class OracleSample    Inherits System.Windows.Forms.Form #Region " Windows フォーム デザイナで生成されたコード "     Public Sub New()        MyBase.New()         ' この呼び出しは Windows フォーム デザイナで必要です。        InitializeComponent()         ' InitializeComponent() 呼び出しの後に初期化を追加します。     End Sub     ' Form は、コンポーネント一覧に後処理を実行するために dispose をオーバーライドします。    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)        If disposing Then            If Not (components Is Nothing) Then                components.Dispose()            End If        End If        MyBase.Dispose(disposing)    End Sub     ' Windows フォーム デザイナで必要です。    Private components As System.ComponentModel.IContainer     ' メモ : 以下のプロシージャは、Windows フォーム デザイナで必要です。    'Windows フォーム デザイナを使って変更してください。      ' コード エディタを使って変更しないでください。    Friend WithEvents OracleConnection1 As System.Data.OracleClient.OracleConnection    Friend WithEvents DataView1 As System.Data.DataView    Friend WithEvents DataGrid1 As System.Windows.Forms.DataGrid    Friend WithEvents Button1 As System.Windows.Forms.Button    Friend WithEvents PageSetupDialog1 As System.Windows.Forms.PageSetupDialog    Friend WithEvents DataSet1 As System.Data.DataSet    Friend WithEvents k1 As System.Windows.Forms.TextBox    Friend WithEvents k2 As System.Windows.Forms.TextBox    Friend WithEvents k3 As System.Windows.Forms.TextBox    Friend WithEvents Button2 As System.Windows.Forms.Button    Friend WithEvents Button3 As System.Windows.Forms.Button    Friend WithEvents Label1 As System.Windows.Forms.Label    Friend WithEvents OracleDataAdapter1 As System.Data.OracleClient.OracleDataAdapter    Friend WithEvents OracleCommand1 As System.Data.OracleClient.OracleCommand    Friend WithEvents OracleSelectCommand1 As System.Data.OracleClient.OracleCommand    Friend WithEvents OracleInsertCommand1 As System.Data.OracleClient.OracleCommand    Friend WithEvents OracleUpdateCommand1 As System.Data.OracleClient.OracleCommand    Friend WithEvents OracleDeleteCommand1 As System.Data.OracleClient.OracleCommand    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()        Me.OracleConnection1 = New System.Data.OracleClient.OracleConnection        Me.DataView1 = New System.Data.DataView        Me.DataGrid1 = New System.Windows.Forms.DataGrid        Me.Button1 = New System.Windows.Forms.Button        Me.PageSetupDialog1 = New System.Windows.Forms.PageSetupDialog        Me.DataSet1 = New System.Data.DataSet        Me.k1 = New System.Windows.Forms.TextBox        Me.k2 = New System.Windows.Forms.TextBox        Me.k3 = New System.Windows.Forms.TextBox        Me.Button2 = New System.Windows.Forms.Button        Me.Button3 = New System.Windows.Forms.Button        Me.Label1 = New System.Windows.Forms.Label        Me.OracleDataAdapter1 = New System.Data.OracleClient.OracleDataAdapter        Me.OracleCommand1 = New System.Data.OracleClient.OracleCommand        Me.OracleSelectCommand1 = New System.Data.OracleClient.OracleCommand        Me.OracleInsertCommand1 = New System.Data.OracleClient.OracleCommand        Me.OracleUpdateCommand1 = New System.Data.OracleClient.OracleCommand        Me.OracleDeleteCommand1 = New System.Data.OracleClient.OracleCommand        CType(Me.DataView1, System.ComponentModel.ISupportInitialize).BeginInit()        CType(Me.DataGrid1, System.ComponentModel.ISupportInitialize).BeginInit()        CType(Me.DataSet1, System.ComponentModel.ISupportInitialize).BeginInit()        Me.SuspendLayout()        '        'OracleConnection1        '        Me.OracleConnection1.ConnectionString = "user id=heli;password=heli;data source=jib1;persist security info=False"        '        'DataGrid1        '        Me.DataGrid1.AllowDrop = True        Me.DataGrid1.DataMember = ""        Me.DataGrid1.HeaderForeColor = System.Drawing.SystemColors.ControlText        Me.DataGrid1.Location = New System.Drawing.Point(8, 48)        Me.DataGrid1.Name = "DataGrid1"        Me.DataGrid1.Size = New System.Drawing.Size(384, 208)        Me.DataGrid1.TabIndex = 0        '        'Button1        '        Me.Button1.Location = New System.Drawing.Point(416, 264)        Me.Button1.Name = "Button1"        Me.Button1.TabIndex = 1        Me.Button1.Text = "save"        '        'DataSet1        '        Me.DataSet1.DataSetName = "NewDataSet"        Me.DataSet1.Locale = New System.Globalization.CultureInfo("ja-JP")        '        'k1        '        Me.k1.Location = New System.Drawing.Point(16, 8)        Me.k1.Name = "k1"        Me.k1.Size = New System.Drawing.Size(80, 19)        Me.k1.TabIndex = 2        Me.k1.Text = ""        '        'k2        '        Me.k2.Location = New System.Drawing.Point(144, 8)        Me.k2.Name = "k2"        Me.k2.Size = New System.Drawing.Size(96, 19)        Me.k2.TabIndex = 3        Me.k2.Text = ""        '        'k3        '        Me.k3.Location = New System.Drawing.Point(280, 8)        Me.k3.Name = "k3"        Me.k3.Size = New System.Drawing.Size(104, 19)        Me.k3.TabIndex = 4        Me.k3.Text = ""        '        'Button2        '        Me.Button2.Location = New System.Drawing.Point(416, 8)        Me.Button2.Name = "Button2"        Me.Button2.Size = New System.Drawing.Size(80, 24)        Me.Button2.TabIndex = 5        Me.Button2.Text = "search"        '        'Button3        '        Me.Button3.Location = New System.Drawing.Point(416, 48)        Me.Button3.Name = "Button3"        Me.Button3.Size = New System.Drawing.Size(80, 23)        Me.Button3.TabIndex = 6        Me.Button3.Text = "clear"        '        'Label1        '        Me.Label1.Font = New System.Drawing.Font("MS UI Gothic", 9.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(128, Byte))        Me.Label1.Location = New System.Drawing.Point(8, 272)        Me.Label1.Name = "Label1"        Me.Label1.Size = New System.Drawing.Size(376, 24)        Me.Label1.TabIndex = 7        '        'OracleDataAdapter1        '        Me.OracleDataAdapter1.DeleteCommand = Me.OracleDeleteCommand1        Me.OracleDataAdapter1.InsertCommand = Me.OracleInsertCommand1        Me.OracleDataAdapter1.SelectCommand = Me.OracleSelectCommand1        Me.OracleDataAdapter1.TableMappings.AddRange(New System.Data.Common.DataTableMapping() {New System.Data.Common.DataTableMapping("Table", "STU", New System.Data.Common.DataColumnMapping() {New System.Data.Common.DataColumnMapping("STU_NO", "STU_NO"), New System.Data.Common.DataColumnMapping("STU_NAME", "STU_NAME"), New System.Data.Common.DataColumnMapping("STU_SEX", "STU_SEX")})})        Me.OracleDataAdapter1.UpdateCommand = Me.OracleUpdateCommand1        '        'OracleCommand1        '        Me.OracleCommand1.Connection = Me.OracleConnection1        '        'OracleSelectCommand1        '        Me.OracleSelectCommand1.CommandText = "SELECT STU_NO, STU_NAME, STU_SEX FROM STU"        Me.OracleSelectCommand1.Connection = Me.OracleConnection1        '        'OracleInsertCommand1        '        Me.OracleInsertCommand1.CommandText = "INSERT INTO STU(STU_NO, STU_NAME, STU_SEX) VALUES (:STU_NO, :STU_NAME, :STU_SEX)"        Me.OracleInsertCommand1.Connection = Me.OracleConnection1        Me.OracleInsertCommand1.Parameters.Add(New System.Data.OracleClient.OracleParameter(":STU_NO", System.Data.OracleClient.OracleType.VarChar, 7, "STU_NO"))        Me.OracleInsertCommand1.Parameters.Add(New System.Data.OracleClient.OracleParameter(":STU_NAME", System.Data.OracleClient.OracleType.VarChar, 20, "STU_NAME"))        Me.OracleInsertCommand1.Parameters.Add(New System.Data.OracleClient.OracleParameter(":STU_SEX", System.Data.OracleClient.OracleType.VarChar, 2, "STU_SEX"))        '        'OracleUpdateCommand1        '        Me.OracleUpdateCommand1.CommandText = "UPDATE STU SET STU_NO = :STU_NO, STU_NAME = :STU_NAME, STU_SEX = :STU_SEX WHERE (" & _        "STU_NO = :Original_STU_NO) AND (STU_NAME = :Original_STU_NAME) AND (STU_SEX = :O" & _        "riginal_STU_SEX)"        Me.OracleUpdateCommand1.Connection = Me.OracleConnection1        Me.OracleUpdateCommand1.Parameters.Add(New System.Data.OracleClient.OracleParameter(":STU_NO", System.Data.OracleClient.OracleType.VarChar, 7, "STU_NO"))        Me.OracleUpdateCommand1.Parameters.Add(New System.Data.OracleClient.OracleParameter(":STU_NAME", System.Data.OracleClient.OracleType.VarChar, 20, "STU_NAME"))        Me.OracleUpdateCommand1.Parameters.Add(New System.Data.OracleClient.OracleParameter(":STU_SEX", System.Data.OracleClient.OracleType.VarChar, 2, "STU_SEX"))        Me.OracleUpdateCommand1.Parameters.Add(New System.Data.OracleClient.OracleParameter(":Original_STU_NO", System.Data.OracleClient.OracleType.VarChar, 7, System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "STU_NO", System.Data.DataRowVersion.Original, Nothing))        Me.OracleUpdateCommand1.Parameters.Add(New System.Data.OracleClient.OracleParameter(":Original_STU_NAME", System.Data.OracleClient.OracleType.VarChar, 20, System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "STU_NAME", System.Data.DataRowVersion.Original, Nothing))        Me.OracleUpdateCommand1.Parameters.Add(New System.Data.OracleClient.OracleParameter(":Original_STU_SEX", System.Data.OracleClient.OracleType.VarChar, 2, System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "STU_SEX", System.Data.DataRowVersion.Original, Nothing))        '        'OracleDeleteCommand1        '        Me.OracleDeleteCommand1.CommandText = "DELETE FROM STU WHERE (STU_NO = :Original_STU_NO) AND (STU_NAME = :Original_STU_N" & _        "AME) AND (STU_SEX = :Original_STU_SEX)"        Me.OracleDeleteCommand1.Connection = Me.OracleConnection1        Me.OracleDeleteCommand1.Parameters.Add(New System.Data.OracleClient.OracleParameter(":Original_STU_NO", System.Data.OracleClient.OracleType.VarChar, 7, System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "STU_NO", System.Data.DataRowVersion.Original, Nothing))        Me.OracleDeleteCommand1.Parameters.Add(New System.Data.OracleClient.OracleParameter(":Original_STU_NAME", System.Data.OracleClient.OracleType.VarChar, 20, System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "STU_NAME", System.Data.DataRowVersion.Original, Nothing))        Me.OracleDeleteCommand1.Parameters.Add(New System.Data.OracleClient.OracleParameter(":Original_STU_SEX", System.Data.OracleClient.OracleType.VarChar, 2, System.Data.ParameterDirection.Input, False, CType(0, Byte), CType(0, Byte), "STU_SEX", System.Data.DataRowVersion.Original, Nothing))        '        'OracleSample        '        Me.AutoScaleBaseSize = New System.Drawing.Size(5, 12)        Me.ClientSize = New System.Drawing.Size(512, 302)        Me.Controls.Add(Me.Label1)        Me.Controls.Add(Me.Button3)        Me.Controls.Add(Me.Button2)        Me.Controls.Add(Me.k3)        Me.Controls.Add(Me.k2)        Me.Controls.Add(Me.k1)        Me.Controls.Add(Me.Button1)        Me.Controls.Add(Me.DataGrid1)        Me.Name = "OracleSample"        Me.Text = "OracleSample"        CType(Me.DataView1, System.ComponentModel.ISupportInitialize).EndInit()        CType(Me.DataGrid1, System.ComponentModel.ISupportInitialize).EndInit()        CType(Me.DataSet1, System.ComponentModel.ISupportInitialize).EndInit()        Me.ResumeLayout(False)     End Sub #End Region     Private Sub OracleSample_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load        Me.Button2_Click(sender, e)        Me.k1.TabIndex = 0    End Sub       Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click         Try             Me.OracleDataAdapter1.Update(Me.DataSet1, "STU")            Me.Label1.Text = "Save successfully"         Catch ex As Exception             MsgBox(ex.ToString())            Me.Label1.Text = "Save failed!"            Me.DataSet1.RejectChanges()         End Try     End Sub     Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click        Dim sql As String         Me.DataSet1.Clear()        sql = "SELECT * FROM STU "         Dim andStr As Boolean         andStr = False        If Me.k1.Text.Trim() & Me.k2.Text.Trim() & Me.k3.Text.Trim() <> "" Then            sql = sql & " where "        End If        If Me.k1.Text.Trim() <> "" Then            sql = sql & " STU_NO = " & "'" & Me.k1.Text.Trim() & "'"            andStr = True        End If        If Me.k2.Text.Trim() <> "" Then            If andStr Then                sql = sql & " and "            End If            sql = sql & " STU_NAME = " & "'" & Me.k2.Text.Trim() & "'"            andStr = True        End If        If Me.k3.Text.Trim() <> "" Then            If andStr Then                sql = sql & " and "            End If            sql = sql & "  STU_SEX = " & "'" & Me.k3.Text.Trim() & "'"            andStr = True        End If        Try            Me.OracleDataAdapter1.SelectCommand.CommandText = sql            Me.OracleDataAdapter1.Fill(Me.DataSet1, "STU")            Me.DataGrid1.DataSource = Me.DataSet1.Tables("STU")            If Me.DataSet1.Tables("STU").Rows.Count = 0 Then                MsgBox("Search Count as 0")            End If            Me.Label1.Text = "Search Count: " & Me.DataSet1.Tables("STU").Rows.Count        Catch ex As Exception            MsgBox(ex.ToString() & Chr(13) & sql)            Me.Label1.Text = "Search failed!"        End Try    End Sub     Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click        Me.DataSet1.Clear()        Me.k1.Text = ""        Me.k2.Text = ""        Me.k3.Text = ""         Me.k1.Focus()        Me.Label1.Text = "Ready..."    End SubEnd Class 运行界面:

阅读(1363) | 评论(1)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

loading...
您需要登录后才能评论,请 登录 或者 注册