データベースの接続


Fanta GRAPE  2015-10-15 21:00:09  No: 143501

こんにちは。
VB初心者です。

前任者が作成したCSVファイルをメモリに格納するプログラムから
Oracleテーブルのデータからメモリへ格納するプログラムへ
変更したいのですが、全くのVB初心者でわかりません。
ヒントでもいいですので教えてください。

CSVファイルをメモリに格納するプログラムは以下の通りです。
    Function ReadCSV(ByVal szFilePath As String) As String()()
        ' (全般) に Imports 追記
        ' Imports System.IO
        ' Imports System.Text
        Dim arrayTempLines()() As String = {}
        ' ストリームを開きます
        Dim reader As New IO.StreamReader(szFilePath, System.Text.Encoding.Default)
        Dim iIdx As Integer = 0
        ' 一気に読み込みます
        Dim szData As String = reader.ReadToEnd()
        ' 不要な文字を取り除きます
        szData = szData.Replace(vbCr, "")
        ' 改行で分離して配列に格納します
        Dim arrayLines() = szData.Split(vbLf)
        Dim szLine As String
        For Each szLine In arrayLines
            Dim iCount As Integer = 0
            Dim szTemp As String = ""
            Dim bValid As Boolean = False
            If szLine.Length > 1 Then
                ' 配列の追加します
                ReDim Preserve arrayTempLines(iIdx)
                ' カンマ区切りで分離して配列に格納します
                arrayTempLines(iIdx) = szLine.Split(",")
                ' データのチェックをします
                If arrayTempLines.Length >= 1 And _
                 arrayTempLines(iIdx)(0) <> "" Then bValid = True
                ' 不要データを除きます
                For Each szTemp In arrayTempLines(iIdx)
                    arrayTempLines(iIdx)(iCount) = _
                    szTemp.Replace(Chr(34), "").TrimEnd()       ' Chr(34)は"のことを指します
                    iCount += 1
                Next
                ' 配列数チェックをします
                If bValid Then iIdx += 1
            End If
        Next
        ' 配列を切り詰めます
        'ReDim Preserve arrayTempLines(iIdx - 1)

        ' 読み込み用のストリームを閉じます
        If (Not reader Is Nothing) Then
            reader.Close()
            reader = Nothing
        End If

        ReadCSV = arrayTempLines
    End Function

以上です。

ちなみに、Oracleテーブルの中にはフィールドが二つあります。


YuO  2015-10-24 00:32:04  No: 143502

Oracle Databaseなら,まずはODP.NETの導入が必要です。
NuGetパッケージマネージャでOracle.ManagedDataAccessを探してインストールします。
https://www.nuget.org/packages/Oracle.ManagedDataAccess/

あとは,
・OracleConnectionインスタンスを作ってコネクションを作成,Openメソッドでコネクションを開く
・OracleCommandにSELECT文とコネクションを設定
・OracleCommandのExecuteReaderでSELECT文を実行
・OracleDataReader.Read()がTrueである間,GetStringを呼び出してカラムを取得する
・OracleDataReader, OracleCommand, OracleConnectionを全て閉じる
という処理になるかと思います。

ref) Getting Started with Oracle Data Provider for .NET (C# Version)
http://www.oracle.com/webfolder/technetwork/tutorials/obe/db/dotnet/GettingStartedNETVersion/GettingStartedNETVersion.htm


※返信する前に利用規約をご確認ください。








  このエントリーをはてなブックマークに追加