SQLの窓

2011年09月18日


VB.net : ODBC + MySQL で CSV をインポート( クラス化サンプル )



VB.net : CSVによるインポート用ファイルの作成( つまりエクスポート ) で作成した
CSV をインポートする処理ですが、データベースの処理等をクラス化しています

MyClass.vb
社員マスタ.sql
社員マスタ.csv
Imports System.IO
Imports System.Text

Module Module1

	Sub Main()

		' データベースとその他の処理をまとめたクラス
		Dim MyObj As MyLib = New MyLib("localhost","lightbox","root","password")

		' オブジェクトを使って接続処理
		if Not MyObj.CreateConnection() then
			Console.WriteLine("処理が異常終了しました")
			Return
		end if

		'---------------------------------------------------

		' insert 構文固定部分
		Dim InsertQueryBase As String = "insert into `社員マスタ` ("
		' 行毎完成 insert 文 を格納する変数
		Dim InsertQuery As String = Nothing

		' SHIFT_JIS で入力する為のテキストファイルの準備
		Dim SJIS_Enc As Encoding = Encoding.GetEncoding(932)
		Dim ReadFile As StreamReader = New StreamReader( MyLib.CsvPath, SJIS_Enc )

		' SHIFT_JIS で読み込む準備
		Dim LineText As String = Nothing
		' ループカウンタ用
		Dim idx As Integer = 0

		' Peek() は、StreamReader オブジェクトの現在位置は変わりません
		' それ以上読み取り可能な文字がない場合、戻り値は -1 です。
		Do While ReadFile.Peek() >= 0

			' 一行を読み込む
			LineText = ReadFile.ReadLine()

			if idx = 0 then
				LineText = LineText.Replace("""","`")
				InsertQueryBase = InsertQueryBase + LineText + ")"
				idx += 1
				Continue Do
			end if

			InsertQuery = InsertQueryBase + " values("
			LineText = LineText.Replace("""""","NULL")
			LineText = LineText.Replace("""","'")
			InsertQuery = InsertQuery + LineText + ")"

'			Console.WriteLine( InsertQuery )
			MyObj.Execute(InsertQuery)

			' 読み込みカウンタアップ
			idx += 1
		Loop

		' リソースの後片づけ
		ReadFile.Close()
		ReadFile.Dispose()

		'---------------------------------------------------

		MyObj.EndConnection()

	End Sub

End Module



posted by lightbox at 2011-09-18 23:16 | VB.NET : データベース | このブログの読者になる | 更新情報をチェックする
container 終わり



フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

CSS ドロップシャドウの参考デモ
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり