• 一个不知道是不是很笨的MS SQL数据库连接类


    斗胆发篇东西在首页……写得不好,还请大家多多包涵……

    原文网址:http://www.blogwind.com/Wuvist/comment.aspx?Article_id=3786



    我实在是有点自虐了……本来很简单的一个project……就是要做一个online shopping的网站而已……我却将其复杂若干倍……弄成一个portal……整个东西完全的模块化……还支持模板替换……带留言板之类的……哎……根本就是一个DotNetNuke的幼稚模仿版……要是做不完,也是我找苦吃……

    老实说,我觉得……这个project已经比整个blogwind要复杂了……

    一直都很讨厌写重复的代码……特别是与数据库有关的东西……总是反复的读取数据库连接字符串……打开数据库连接……声明新的数据命令……新dataadapter等等……

    我暂时还没法向DotNetNuke一样去使用Factory Design Pattern……自己自作聪明的写了下面一个类conn:

    imports System.Data.SqlClient
    Public Class conn
        Private conn As SqlConnection
        Public cmd As SqlCommand
        Public Sub New()
            Dim configurationAppSettings As System.Configuration.AppSettingsReader = New System.Configuration.AppSettingsReader
            conn = New SqlConnection(CType(configurationAppSettings.GetValue("ConnectionString", GetType(System.String)), String))
            conn.Open()
        End Sub

        Public Function close()
            If conn.State = ConnectionState.Open Then
                conn.Close()
            End If
        End Function

        Public Function exe(ByVal sql As String)
            Dim cmd As New SqlCommand(sql, conn)
            cmd.ExecuteNonQuery()
            cmd.Dispose()
        End Function

        Public Function retrieve(ByVal sql As String, ByVal name As String) As DataTable
            Dim comm As SqlDataAdapter
            comm = New SqlDataAdapter(sql, conn)
            Dim ds As New DataTable
            comm.Fill(ds)
            comm.Dispose()
            Return ds
        End Function
        Public Function newcmd(ByVal sql As String)
            cmd = New SqlCommand(sql, conn)
            cmd.CommandType = CommandType.StoredProcedure
        End Function
    End Class

    这个类应该还是会慢慢的扩展……我知道有sqlhelper之类的东西……但是,一直没有心情去学习……不知道写这么个类是不是在重复sqlhelper的功能……

    有了这个东西……我就在也不用在所有的页面里面重复跟数据库有关的东西了……连imports System.Data.SqlClient都不用……

    全部一上来就 dim cn as New conn……

    如果要执行NonQuery的sql命令……便cn.exe(sql)……

    要获得一个表则dim dt as DataTable, 然后dt = cn.retrieve(sql, tablename)

    要执行存储过程的话,则cn.newcmd(sp name),然后,便可以对cn.cmd添加各个parameters啥的……

    我不敢说这样子很爽……但是……比起我一开始在写blogwind的时候,是舒服很多了……

    我不知道有没有可能通过重写这个类来实现数据库通用……而不需要更改其它部分的程序……也许可以吧……至少我并没有在其他部分程序里面import SqlClient……使用的东西,也都是database independent的……

    什么时候闲得发慌了……我就去写Access/mysql/oracle等的conn类……然后看看是否可以直接替换……嘿嘿……

  • 相关阅读:
    Office Web Apps安装部署(一)
    TFS 2012使用简介
    SharePoint 2013 内容部署功能简介
    SharePoint 自定义WebPart之间的连接
    循环滚动新闻列表-懒人图库
    SharePoint 2010 文档管理之过期归档工具
    SharePoint 2010 文档管理系列之文档搜索
    SharePoint 网站登录不上,3次输入用户名/密码白页、
    SharePoint 门户添加内网域名
    JavaScript异常处理和事件处理
  • 原文地址:https://www.cnblogs.com/wuvist/p/55726.html
Copyright © 2020-2023  润新知