Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Imports System.Data.SqlClient
- Public Class MSSQLDB
- Implements IDisposable
- '*** for example ***
- 'Using conn As New MSSQLDB("Initial Catalog=...;Data Source=taiyodenki;Server=...;UID=...;PWD=...")
- ' Using res = conn.Query("SELECT * FROM T_FOO")
- ' While res.Read()
- ' Console.WriteLine("Serial={0}", res.GetInt32(0))
- ' Console.WriteLine("Name={0}", res.GetString(1))
- ' End While
- ' End Using
- 'End Using
- Private conn As SqlConnection
- Private trans As SqlTransaction
- Public Sub New(ByVal conStr As String)
- Me.conn = New SqlConnection(conStr)
- Me.conn.Open()
- Me.trans = Me.conn.BeginTransaction()
- End Sub
- Public Function Query(ByVal sql As String) As System.Data.SqlClient.SqlDataReader
- Dim reader As New SqlCommand(sql, Me.conn, Me.trans)
- Debug.Print(sql)
- Return reader.ExecuteReader()
- End Function
- Public Function Exec(ByVal sql As String) As Integer
- Dim updater As New SqlCommand(sql, Me.conn, Me.trans)
- Debug.Print(sql)
- Return updater.ExecuteNonQuery()
- End Function
- Public Sub Commit()
- Me.trans.Commit()
- End Sub
- Public Sub Rollback()
- Me.trans.Rollback()
- End Sub
- Public Shared Function Esc(ByVal value As String) As String
- Return If(value IsNot Nothing, value.Replace("'", "''"), "")
- End Function
- Public Shared Function QEsc(ByVal value As String) As String
- Return If(value IsNot Nothing, String.Format("'{0}'", value.Replace("'", "''")), "NULL")
- End Function
- #Region "IDisposable Support"
- Private disposedValue As Boolean ' 重複する呼び出しを検出するには
- ' IDisposable
- Protected Overridable Sub Dispose(ByVal disposing As Boolean)
- If Not Me.disposedValue Then
- If disposing Then
- ' TODO: マネージ状態を破棄します (マネージ オブジェクト)。
- End If
- ' TODO: アンマネージ リソース (アンマネージ オブジェクト) を解放し、下の Finalize() をオーバーライドします。
- ' TODO: 大きなフィールドを null に設定します。
- If Me.trans IsNot Nothing Then
- Try
- Me.trans.Rollback()
- Me.trans.Dispose()
- Catch ex As Exception
- :
- End Try
- Me.trans = Nothing
- End If
- If Me.conn IsNot Nothing Then
- Try
- Me.conn.Close()
- Me.conn.Dispose()
- Catch ex As Exception
- :
- End Try
- Me.conn = Nothing
- End If
- End If
- Me.disposedValue = True
- End Sub
- ' TODO: 上の Dispose(ByVal disposing As Boolean) にアンマネージ リソースを解放するコードがある場合にのみ、Finalize() をオーバーライドします。
- Protected Overrides Sub Finalize()
- ' このコードを変更しないでください。クリーンアップ コードを上の Dispose(ByVal disposing As Boolean) に記述します。
- Dispose(False)
- MyBase.Finalize()
- End Sub
- ' このコードは、破棄可能なパターンを正しく実装できるように Visual Basic によって追加されました。
- Public Sub Dispose() Implements IDisposable.Dispose
- ' このコードを変更しないでください。クリーンアップ コードを上の Dispose(ByVal disposing As Boolean) に記述します。
- Dispose(True)
- GC.SuppressFinalize(Me)
- End Sub
- #End Region
- End Class
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement