VB.NETでOracleDB接続しフォームにテーブルデータを表示する

きっかけ

VB.NETは触ったことがなく日頃はExcel,AccessVBAでDB接続をして簡単なアプリを作ってる。ここは一念発起でVB.NETでアプリをつくると腹をくくった。(つもり)開発ツールなどは無償で環境を構築できる。あとは頑張る。テストを行った簡単な記録。会社の基幹系DBがOracleなのでハードルが上がりそうだがOracleで作ることにする。この先道のりは厳しい。

構成

開発ツール Visual Studio Community2015
ミドルウェア ODP.NET(Oracle Developer Tools for Visual Studio)
データベース Oracle Database Express Edition 11g Release 2
OS Windows8.1

インストール

 VisualStudioインストール

   初期設定のまま最後まで

 DBインストール設定

  インストール後Web管理画面からユーザ名パスワード設定
  WS019

 ODP.NET ODTインストール設定

  インストール途中にClient接続情報の設定 tnsnames.oraが作られる

 

コードを書いていく前に参照設定の追加

サーバエクスプローラにOracleのテーブルが出現していたのでこれにて無手順で接続できるはずと勝手に思い込み参照設定が必要なことを気が付くまで恐ろしく時間を費やしてしまった。そういえばVBAでも参照設定しないとADO使えないなぁと後で合点VB.NETはDLLを指定する方式なのだなぁ。
WS023 WS024

いろいろ調べてコードを書いてみた

Imports Oracle.DataAccess.Client

Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim strUser As String 'ユーザー
Dim strPasswd As String 'パスワード
Dim strDataSource As String 'データソース
Dim strConnectstring As String
Dim oraCon As OracleConnection
Dim strSql As String
Dim Dadp As OracleDataAdapter
Dim Dset As DataSet

strUser = "SHUKEI"
strPasswd = "admin"
strDataSource = "XE"
strConnectstring = "User Id=" & strUser & "; " & "Password=" & strPasswd & "; " & "Data Source=" & strDataSource
oraCon = New OracleConnection(strConnectstring)

oraCon.Open()
Dset = New DataSet("TMP")

strSql = ""
strSql = strSql & "Select EMPNO 社員番号,ENAME,JOB,MGR,HIREDATE,SAL FROM EMP"

Dadp = New OracleDataAdapter(strSql, oraCon)
Try
Dadp.Fill(Dset, "TMP")
Me.DataGridView1.DataSource = Dset.Tables("TMP")
Me.DataGridView1.ReadOnly = True
Me.DataGridView1.AllowUserToDeleteRows = False
Me.DataGridView1.AllowUserToAddRows = False
'全ての行の背景色を水色にする
Me.DataGridView1.RowsDefaultCellStyle.BackColor = Color.AliceBlue
'奇数行を黄色にする
Me.DataGridView1.AlternatingRowsDefaultCellStyle.BackColor = Color.White
Catch ex As Exception
MessageBox.Show(ex.ToString)
End Try

Dadp.Dispose()
oraCon.Close()

End Sub

WS025 WS026

コメント