vb.net 操作Access数据库帮助类

原创 2013年12月29日 11:30:31

VB.net 操作Access数据库的一些常用方法,代码如下

Imports System
Imports System.Data.SqlClient
Imports System.Configuration
Imports System.Collections.Generic
Imports System.Text
Imports System.Data
Imports System.Configuration.ConfigurationSettings
Imports System.Data.OleDb



Public Class DB



    Private Shared com As OleDb.OleDbCommand
    Private Shared reader As OleDb.OleDbDataReader
    Private Shared adapter As OleDb.OleDbDataAdapter
    Private Shared conn As OleDb.OleDbConnection

    ''' <summary>
    ''' 获取数据库连接
    ''' </summary>
    ''' <value></value>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Shared ReadOnly Property NewConn() As OleDbConnection
        Get
            Dim connectionString As String
            'connectionString = System.Configuration.ConfigurationSettings.GetConfig("Supermarket")
            '连接2010数据库
            'connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=F:\GCU.accdb"
            '连接03-07数据库
            connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\JL\GCU.MDB"

            '应该在这里先判断conn是否为Nothing
            If conn Is Nothing Then
                conn = New OleDb.OleDbConnection(connectionString)
            End If
            If conn.State <> ConnectionState.Open Then
                conn.Open()
            End If
            Return conn
        End Get
    End Property

    ''' <summary>
    ''' 执行增删改(无参)
    ''' </summary>
    ''' <param name="sql">执行的Sql语句</param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Shared Function ExecuteNonQuery(ByVal sql As String) As Integer
        com = New OleDb.OleDbCommand(sql, NewConn())
        Return com.ExecuteNonQuery()
    End Function

    ''' <summary>
    ''' 执行增删改(有参)
    ''' </summary>
    ''' <param name="sql"></param>
    ''' <param name="para"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Shared Function ExecuteNonQuery(ByVal sql As String, ByVal para As OleDbParameter()) As Integer
        com = New OleDb.OleDbCommand(sql, NewConn)
        com.Parameters.AddRange(para)
        Return com.ExecuteNonQuery()
    End Function

    ''' <summary>
    ''' 执行增删改的存储过程
    ''' </summary>
    ''' <param name="para"></param>
    ''' <param name="ProcedureName"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Shared Function ExecuteNonQuery(ByVal para As SqlParameter(), ByVal ProcedureName As String) As Integer
        Dim cmd As OleDb.OleDbCommand
        cmd = New OleDb.OleDbCommand()
        cmd.Connection = NewConn()
        cmd.CommandText = ProcedureName
        cmd.CommandType = CommandType.StoredProcedure
        cmd.Parameters.AddRange(para)
        Return com.ExecuteNonQuery
    End Function

    ''' <summary>
    ''' 执行查询(返回一个结果集,无参)
    ''' </summary>
    ''' <param name="sql"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Shared Function GetScalar(ByVal sql As String) As String
        Dim dataset As DataSet
        dataset = New DataSet()
        com = New OleDb.OleDbCommand(sql, NewConn)
        adapter = New OleDbDataAdapter(com)
        adapter.Fill(dataset)
        If dataset.Tables.Count > 0 And dataset.Tables(0).Rows.Count > 0 Then
            Return dataset.Tables(0).Rows(0)(0).ToString()
        End If
        Return "Null"
    End Function

    ''' <summary>
    ''' 执行查询(返回一个结果集,有参)
    ''' </summary>
    ''' <param name="sql"></param>
    ''' <param name="para"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Shared Function GetScalar(ByVal sql As String, ByVal para As SqlParameter()) As Integer
        com = New OleDb.OleDbCommand(sql, NewConn)
        com.Parameters.AddRange(para)
        Return Convert.ToInt32(com.ExecuteScalar())
    End Function

    ''' <summary>
    ''' 执行查询(返回一行数据,无参)
    ''' </summary>
    ''' <param name="sql"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Shared Function GetReader(ByVal sql As String) As OleDbDataReader
        com = New OleDb.OleDbCommand(sql, NewConn)
        reader = com.ExecuteReader()
        Return reader
    End Function

    ''' <summary>
    ''' 执行查询(返回一行数据,有参)
    ''' </summary>
    ''' <param name="sql"></param>
    ''' <param name="para"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Shared Function GetReader(ByVal sql As String, ByVal para As SqlParameter()) As OleDbDataReader
        com = New OleDb.OleDbCommand(sql, NewConn)
        com.Parameters.AddRange(para)
        reader = com.ExecuteReader()
        Return reader
    End Function

    ''' <summary>
    ''' 执行查询(返回一个数据集,无参)
    ''' </summary>
    ''' <param name="sql"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Shared Function GetDataSet(ByVal sql As String) As DataTable
        Dim dataset As DataSet
        dataset = New DataSet()
        com = New OleDb.OleDbCommand(sql, NewConn)
        adapter = New OleDbDataAdapter(com)
        adapter.Fill(dataset)
        Return dataset.Tables(0)
    End Function


    ''' <summary>
    ''' 执行查询(返回一个数据集,有参)
    ''' </summary>
    ''' <param name="sql"></param>
    ''' <param name="para"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Shared Function GetDataSet(ByVal sql As String, ByVal para As SqlParameter()) As DataTable
        Dim dataset As DataSet
        dataset = New DataSet()
        com = New OleDbCommand(sql, NewConn)
        com.Parameters.AddRange(para)
        adapter = New OleDbDataAdapter(com)
        adapter.Fill(dataset)
        Return dataset.Tables(0)
    End Function



End Class


 

相关文章推荐

vb.net操作数据库之ACCESS(1)

  一直想写下数据库操作方面的,只是没什么时间(好像是借口,应该是懒或者没心情吧,呵呵)。最近发现CSDN上还是每天有人要问这些内容,我有的时候就懒的回答,呵呵,主要不断的去找代码给他们累啊。所以还是...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

vb.net操作数据库之ACCESS(3)

这一篇我再说说水晶报表的情况。ACCESS中对应水晶报表方面,大家可能会遇到的最多的问题应该就是打开报表后会出现需要登录的问题。 这个是为什么呢?明明我没有设置密码,怎么会有要输入密码呢?如果你够沉着...

vb.net压缩access文件(.accdb)

vb.net压缩access文件(.accdb) 由于access文件(.accdb)会记录操作,所以即使执行了delete数据的处理,该文件的大小还是会不断增加. 解决思路:将原有的acce...

vb 与 .accdb 格式的access数据库的连接方法

在用vb连接access数据库时,出现了这样的错误: 这是你的数据库格式不被 程序识别。vb默认的一般是.,mdb  access数据库格式!这时我们看一下我们要连接的 是.accdb 格式的...

在Access里面,提示出错“标准表达式中数据类型不匹配”,解决方法:

sql=“update news set title=@title where id=@id”    //sql语句尽量不要这样写,由于在Access中要求参数必须一一对应 改为:...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

VB.net数据库编程(01):简单的入门实例--连接到Access文件

先来一个简单的实例。 VB.net 2012 SQl server 2012 Access文件:http://download.csdn.net/detail/dzweather...

VB.net数据库编程(01):简单的入门实例--连接到Access文件

先来一个简单的实例。 VB.net 2012 SQl server 2012 Access文件:http://download.csdn.net/detail/dzweather/5042992...

vb.net合伙数据库access(二)——数据绑定控件成功

当我们已经建立了vb.net和数据库access的链接之后随后显示数据就会非常的简单了,其实就是以前我们学习过的对于一个控件进行了数据的绑定,根本不需要任何的代码,而这节不仅单单是教大家如何显示数据,...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:vb.net 操作Access数据库帮助类
举报原因:
原因补充:

(最多只允许输入30个字)