Imports System.Data.OracleClient
Imports Oracle.ManagedDataAccess.Client

Public Class Form1

    Dim connIP As String
    Dim connPort As String
    Dim connSERVICENAME As String
    Dim connUserId As String
    Dim connPassword As String

    Dim conn As Oracle.ManagedDataAccess.Client.OracleConnection

    Private Sub btn_connect_Click(sender As Object, e As EventArgs) Handles btn_connect.Click

        Try

            connUserId = lbl_ID.Text
            connPassword = lbl_PW.Text
            connSERVICENAME = lbl_SERVICENAME.Text
            connIP = lbl_IP.Text
            connPort = lbl_PORT.Text

            Dim DB_STR As String = String.Format("User Id={0};Password={1};Data Source={2}:{3}/{4};", connUserId, connPassword, connIP, connPort, connSERVICENAME)
            Dim DT As DataTable = Nothing

            conn = New Oracle.ManagedDataAccess.Client.OracleConnection(DB_STR)
            conn.Open()

            If lbl_ID.Text = "" And lbl_PW.Text = "" And lbl_SERVICENAME.Text = "" Then
                MessageBox.Show("빈값이 있습니다. 확인필요")
            Else
                If conn IsNot Nothing Then
                    ListBox1.Items.Add(Now.ToString("yyyyMMdd HH:mm:ss") & "------ 연결성공하였습니다.")

                Else
                    ListBox1.Items.Add(Now.ToString("yyyyMMdd HH:mm:ss") & "------ 연결실패하였습니다.")
                    conn.Close()
                End If
            End If

        Catch ex As Exception
            MsgBox(ex.ToString)
            If conn Is Nothing Then
                conn.Close()
            End If
        End Try
    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        Try

            If RichTextBox1.Text = "" Then
                ListBox1.Items.Add(Now.ToString("yyyyMMdd HH:mm:ss") & "------ SQL구문이 없습니다.")
            End If

            Dim QueryStr As String = RichTextBox1.Text
            SearchTable(QueryStr)

        Catch ex As Exception
            MsgBox(ex.ToString)
        End Try
    End Sub


    Private da As Oracle.ManagedDataAccess.Client.OracleDataAdapter
    Private cb As Oracle.ManagedDataAccess.Client.OracleCommandBuilder
    Private ds As DataSet
    Private Sub SearchTable(queryStr As String)
        Try

            If queryStr.Substring(0, 1).ToUpper <> "S" Then
                MessageBox.Show(Now.ToString("yyyyMMdd HH:mm:ss") & "------ DB 접속오류")
                Return
            End If

            Dim sql As String = RichTextBox1.Text
            Dim cmd As New Oracle.ManagedDataAccess.Client.OracleCommand(sql, conn)
            cmd.CommandType = CommandType.Text

            da = New Oracle.ManagedDataAccess.Client.OracleDataAdapter(cmd)
            cb = New Oracle.ManagedDataAccess.Client.OracleCommandBuilder(da)
            ds = New DataSet

            da.Fill(ds)
            DataGridView1.DataSource = ds.Tables(0)

        Catch ex As Exception
            MsgBox(ex.ToString)
        End Try
    End Sub

End Class

아쉬운건 richTextBox에 세미콜론이 들어가면 sql조회 에러발생

+ Recent posts