Share Pastebin
Guest
Private paste!

Category

By: a guest | May 5th, 2010 | Syntax: VB.NET | Size: 9.35 KB | Hits: 146 | Expires: Never
Copy text to clipboard
  1. Imports System
  2. Imports System.ComponentModel
  3. Imports System.Collections
  4. Imports System.Diagnostics
  5. Imports System.Data
  6. Imports System.Data.SqlClient
  7. Imports System.Configuration
  8.  
  9. ' <summary>
  10. '
  11. ' </summary>
  12. Public Class Database
  13.     Implements IDisposable
  14.  
  15. #Region " Local Private Properties "
  16.  
  17.     ' connection to data source
  18.     Private con As SqlConnection
  19.     Private _connectionString As String = ""
  20.  
  21. #End Region
  22.  
  23. #Region "Class Constructors"
  24.  
  25.     ' <summary>
  26.     ' Default constructor for a database object
  27.     ' </summary>
  28.     Public Sub New()
  29.         MyBase.New()
  30.     End Sub
  31.  
  32. #End Region
  33.  
  34. #Region "Public Properties"
  35.  
  36.     Public Property ConnectionString() As String
  37.         Get
  38.             Return Me._connectionString
  39.         End Get
  40.         Set(ByVal value As String)
  41.             Me._connectionString = value
  42.         End Set
  43.     End Property
  44.  
  45. #End Region
  46.  
  47. #Region " Private Methods "
  48.     ' <summary>
  49.     ' Open the connection.
  50.     ' </summary>
  51.     Private Sub Open()
  52.         ' open connection
  53.         Try
  54.             setConnectionString()
  55.             If (con Is Nothing) Then
  56.                 Try
  57.                     con = New SqlConnection(ConnectionString)
  58.                     con.Open()
  59.                 Catch ex As Exception
  60.                     con.Dispose()
  61.                     con = Nothing
  62.                     Throw New Exception(("Open: " + ex.Message))
  63.                 End Try
  64.             ElseIf (con.State = System.Data.ConnectionState.Closed) Then
  65.                 con.ConnectionString = ConnectionString
  66.                 con.Open()
  67.             End If
  68.         Catch ex As Exception
  69.             Throw New Exception(("Open: " + ex.Message))
  70.         End Try
  71.     End Sub
  72.  
  73.     Private Sub setConnectionString()
  74.         Dim connectionStrings As ConnectionStringSettingsCollection = ConfigurationManager.ConnectionStrings
  75.         If connectionStrings.Count <> 0 Then
  76.             Dim connection As ConnectionStringSettings = connectionStrings.Item("Database.ConnectionString")
  77.             ConnectionString = connection.ConnectionString
  78.         End If
  79.     End Sub
  80.  
  81. #End Region
  82.  
  83. #Region " Public Methods "
  84.  
  85.     ' <summary>
  86.     ' Close the connection.
  87.     ' </summary>
  88.     Public Sub Close()
  89.         If (Not (con) Is Nothing) Then
  90.             con.Close()
  91.         End If
  92.     End Sub
  93.  
  94.     ' <summary>
  95.     ' Make input param.
  96.     ' </summary>
  97.     ' <param name="ParamName">Name of param.</param>
  98.     ' <param name="DbType">Param type.</param>
  99.     ' <param name="Size">Param size.</param>
  100.     ' <param name="Value">Param value.</param>
  101.     ' <returns>New parameter.</returns>
  102.     Public Function MakeInParam(ByVal ParamName As String, ByVal DbType As SqlDbType, ByVal Size As Integer, ByVal Value As Object) As SqlParameter
  103.         If (Value Is Nothing) Then
  104.             Return MakeParam(ParamName, DbType, Size, ParameterDirection.Input, System.DBNull.Value)
  105.         Else
  106.             Return MakeParam(ParamName, DbType, Size, ParameterDirection.Input, Value)
  107.         End If
  108.     End Function
  109.  
  110.     ' <summary>
  111.     ' Make input param.
  112.     ' </summary>
  113.     ' <param name="ParamName">Name of param.</param>
  114.     ' <param name="DbType">Param type.</param>
  115.     ' <param name="Size">Param size.</param>
  116.     ' <returns>New parameter.</returns>
  117.     Public Function MakeOutParam(ByVal ParamName As String, ByVal DbType As SqlDbType, ByVal Size As Integer) As SqlParameter
  118.         Return MakeParam(ParamName, DbType, Size, ParameterDirection.Output, Nothing)
  119.     End Function
  120.  
  121.     ' <summary>
  122.     ' Make stored procedure param.
  123.     ' </summary>
  124.     ' <param name="ParamName">Name of param.</param>
  125.     ' <param name="DbType">Param type.</param>
  126.     ' <param name="Size">Param size.</param>
  127.     ' <param name="Direction">Parm direction.</param>
  128.     ' <param name="Value">Param value.</param>
  129.     ' <returns>New parameter.</returns>
  130.     Public Function MakeParam(ByVal ParamName As String, ByVal DbType As SqlDbType, ByVal Size As Int32, ByVal Direction As ParameterDirection, ByVal Value As Object) As SqlParameter
  131.         Dim param As SqlParameter
  132.         If (Size > 0) Then
  133.             param = New SqlParameter(ParamName, DbType, Size)
  134.         Else
  135.             param = New SqlParameter(ParamName, DbType)
  136.         End If
  137.         param.Direction = Direction
  138.         If Not ((Direction = ParameterDirection.Output) _
  139.                     AndAlso (Value Is Nothing)) Then
  140.             param.Value = Value
  141.         End If
  142.         Return param
  143.     End Function
  144.  
  145.     ' <summary>
  146.     ' Run stored procedure.
  147.     ' </summary>
  148.     ' <param name="procName">Name of stored procedure.</param>
  149.     ' <returns>Stored procedure return value.</returns>
  150.     Public Overloads Function RunProc(ByVal procName As String) As Integer
  151.         Dim cmd As SqlCommand = CreateCommand(procName, Nothing)
  152.         cmd.ExecuteNonQuery()
  153.         Me.Close()
  154.         Return CType(cmd.Parameters("ReturnValue").Value, Integer)
  155.     End Function
  156.  
  157.     ' <summary>
  158.     ' Run stored procedure.
  159.     ' </summary>
  160.     ' <param name="procName">Name of stored procedure.</param>
  161.     ' <param name="prams">Stored procedure params.</param>
  162.     ' <returns>Stored procedure return value.</returns>
  163.     Public Overloads Function RunProc(ByVal procName As String, ByVal prams() As SqlParameter) As Integer
  164.         Dim cmd As SqlCommand = CreateCommand(procName, prams)
  165.         cmd.ExecuteNonQuery()
  166.         Me.Close()
  167.         Return CType(cmd.Parameters("ReturnValue").Value, Integer)
  168.     End Function
  169.  
  170.     ' <summary>
  171.     ' Run stored procedure.
  172.     ' </summary>
  173.     ' <param name="procName">Name of stored procedure.</param>
  174.     ' <param name="dataReader">Return result of procedure.</param>
  175.     Public Overloads Sub RunProc(ByVal procName As String, ByRef dataReader As SqlDataReader)
  176.         Dim cmd As SqlCommand = CreateCommand(procName, Nothing)
  177.         dataReader = cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection)
  178.     End Sub
  179.  
  180.     ' <summary>
  181.     ' Run stored procedure.
  182.     ' </summary>
  183.     ' <param name="procName">Name of stored procedure.</param>
  184.     ' <param name="prams">Stored procedure params.</param>
  185.     ' <param name="dataReader">Return result of procedure.</param>
  186.     Public Overloads Sub RunProc(ByVal procName As String, ByVal prams() As SqlParameter, ByRef dataReader As SqlDataReader)
  187.         Dim cmd As SqlCommand = CreateCommand(procName, prams)
  188.         dataReader = cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection)
  189.     End Sub
  190.  
  191.     ' <summary>
  192.     ' Run stored procedure.
  193.     ' </summary>
  194.     ' <param name="procName">Name of stored procedure.</param>
  195.     ' <param name="prams">Stored procedure params.</param>
  196.     ' <param name="dataSet">Return result of procedure as a DataSet.</param>
  197.     Public Overloads Sub RunProc(ByVal procName As String, ByVal prams() As SqlParameter, ByRef dataSet As DataSet)
  198.         Dim cmd As SqlCommand = CreateCommand(procName, prams)
  199.         Dim dataAdapter As SqlDataAdapter = New SqlDataAdapter(cmd)
  200.         Dim ds As DataSet = New DataSet
  201.         dataAdapter.Fill(ds)
  202.         dataSet = ds
  203.     End Sub
  204.  
  205.     ' <summary>
  206.     ' Run stored procedure.
  207.     ' </summary>
  208.     ' <param name="procName">Name of stored procedure.</param>
  209.     ' <param name="prams">Stored procedure params.</param>
  210.     ' <param name="dataReader">Return result of procedure as a DataSet.</param>
  211.     ' <param name="srcTable">Name of DataTable inside the DataSet to be returned.</param>
  212.     Public Overloads Sub RunProc(ByVal procName As String, ByVal prams() As SqlParameter, ByRef dataSet As DataSet, ByVal srcTable As String)
  213.         Dim cmd As SqlCommand = CreateCommand(procName, prams)
  214.         Dim dataAdapter As SqlDataAdapter = New SqlDataAdapter(cmd)
  215.         Dim ds As DataSet = New DataSet
  216.         dataAdapter.Fill(ds, srcTable)
  217.         dataSet = ds
  218.     End Sub
  219.  
  220.     ' <summary>
  221.     ' Create command object used to call stored procedure.
  222.     ' </summary>
  223.     ' <param name="procName">Name of stored procedure.</param>
  224.     ' <param name="prams">Params to stored procedure.</param>
  225.     ' <returns>Command object.</returns>
  226.     Private Function CreateCommand(ByVal procName As String, ByVal prams() As SqlParameter) As SqlCommand
  227.         ' make sure connection is open
  228.         Open()
  229.         'command = new SqlCommand( sprocName, new SqlConnection( ConfigManager.DALConnectionString ) );
  230.         Dim cmd As SqlCommand = New SqlCommand(procName, con)
  231.         cmd.CommandType = CommandType.StoredProcedure
  232.         ' add proc parameters
  233.         If (Not (prams) Is Nothing) Then
  234.             For Each parameter As SqlParameter In prams
  235.                 cmd.Parameters.Add(parameter)
  236.             Next
  237.         End If
  238.         ' return param
  239.         cmd.Parameters.Add(New SqlParameter("ReturnValue", SqlDbType.Int, 4, ParameterDirection.ReturnValue, False, 0, 0, String.Empty, DataRowVersion.Default, Nothing))
  240.         Return cmd
  241.     End Function
  242. #End Region
  243.  
  244. #Region " IDisposable Support "
  245.  
  246.     ' IDisposable
  247.     Protected Overridable Sub Dispose(ByVal disposing As Boolean)
  248.     End Sub
  249.  
  250.     ' This code added by Visual Basic to correctly implement the disposable pattern.
  251.     Public Sub Dispose() Implements IDisposable.Dispose
  252.         ' Do not change this code.  Put cleanup code in Dispose(ByVal disposing As Boolean) above.
  253.         Dispose(True)
  254.         GC.SuppressFinalize(Me)
  255.     End Sub
  256. #End Region
  257.  
  258. End Class