|
Namespace Tonton.DAL ¡¡¡¡''''//---------------------------------------- ¡¡¡¡''''//¡¶Êý¾ÝÁ´½Ó²ã¡· Ö® ¡¶Êý¾ÝÁ¬½ÓÓëÃüÁîÐС· ¡¡¡¡''''//---------------------------------------- ¡¡¡¡''''//×÷ÕߣºÕÅÉÙÌÄ £¨Tonton£© ¡¡¡¡''''//ʱ¼ä£º2005Äê8ÔÂ29ÈÕ ¡¡¡¡''''//Óʱࣺtonton@yeah.net ¡¡¡¡''''//Ö÷Ò³£ºhttp://www.tonton.cn ¡¡¡¡''''//²©¿Í£ºhttp://blog.tonton.cn ¡¡¡¡''''//---------------------------------------- ¡¡¡¡''''//---------------------------------------- ¡¡¡¡''''//Àý×Ó£º ¡¡¡¡''''//---------------------------------------- ¡¡¡¡''''Dim Conn As New Tonton.DAL.Connection ¡¡¡¡''''Dim Cmd As Tonton.DAL.Command ¡¡¡¡'''' ¡¡¡¡''''¡¡¡¡Try ¡¡¡¡''''¡¡¡¡¡¡¡¡''''//´ò¿ªACCESSÊý¾Ý¿â£¬Ò²¿ÉÒÔÓÃÁ¬½Ó×Ö·û´®²¢²ÉÓÃOpen·½·¨£¬ ¡¡¡¡''''¡¡¡¡¡¡¡¡''''//Conn.Open("Provider=Microsoft.Jet.OleDb.4.0;Data Source=" & Server.MapPath("db.mdb")) ¡¡¡¡''''¡¡¡¡¡¡¡¡''''//µ±È»£¬Èç¹ûÖªµÀÊÇÓÃACCESS£¬Äã»áÓÃÉÏÃæÕâ¸öÂé·³µÄ·½·¨Â𣿠¡¡¡¡''''¡¡¡¡¡¡¡¡''''//Èç¹ûÊÇSQL SERVERµÄ»°£¬¿ÉÒÔÓà Conn.OpenSqlServer ·½·¨¡£ ¡¡¡¡''''¡¡¡¡¡¡¡¡'''' ¡¡¡¡''''¡¡¡¡¡¡¡¡Conn.OpenAccess(Server.MapPath("db.mdb")) ¡¡¡¡''''¡¡¡¡¡¡¡¡''''//Ìí¼Ó¼Ç¼ ¡¡¡¡''''¡¡¡¡¡¡¡¡Cmd = Conn.Execute("Insert Into [Item]([Value]) VALUES (?)") ¡¡¡¡''''¡¡¡¡¡¡¡¡Cmd.AddParam("Ìí¼ÓµÄÄÚÈÝ") ¡¡¡¡''''¡¡¡¡¡¡¡¡Cmd.Update() ¡¡¡¡''''¡¡¡¡¡¡¡¡''''//ɾ³ý¼Ç¼ ¡¡¡¡''''¡¡¡¡¡¡¡¡Cmd = Conn.Execute("Delete From [Item] WHERE Id=?") ¡¡¡¡''''¡¡¡¡¡¡¡¡Cmd.AddParam(6)¡¡¡¡¡¡¡¡ ''''//Ҫɾ³ýµÄ¼Ç¼ºÅ ¡¡¡¡''''¡¡¡¡¡¡¡¡Cmd.Update() ¡¡¡¡''''¡¡¡¡¡¡¡¡''''//¸üмǼ ¡¡¡¡''''¡¡¡¡¡¡¡¡Cmd = Conn.Execute("Update [Item] Set [Value]=? WHERE Id=?") ¡¡¡¡''''¡¡¡¡¡¡¡¡Cmd.AddParam("еÄÄÚÈÝ") ¡¡¡¡''''¡¡¡¡¡¡¡¡Cmd.AddParam(5) ¡¡¡¡''''¡¡¡¡¡¡¡¡Cmd.Update() ¡¡¡¡''''¡¡¡¡¡¡¡¡''''//¶ÁÈ¡¼Ç¼ ¡¡¡¡''''¡¡¡¡¡¡¡¡Cmd = Conn.Execute("Select * From [Item]") ¡¡¡¡''''¡¡¡¡¡¡¡¡If Cmd.Read Then ¡¡¡¡''''¡¡¡¡¡¡¡¡¡¡¡¡Response.Write(Cmd("Value")) ¡¡¡¡''''¡¡¡¡¡¡¡¡Else ¡¡¡¡''''¡¡¡¡¡¡¡¡¡¡¡¡Response.Write("OK") ¡¡¡¡''''¡¡¡¡¡¡¡¡End If ¡¡¡¡''''¡¡¡¡Catch ex As Exception ¡¡¡¡''''¡¡¡¡¡¡¡¡''''//³ö´í´¦Àí ¡¡¡¡''''¡¡¡¡¡¡¡¡Response.Write(ex) ¡¡¡¡''''¡¡¡¡Finally ¡¡¡¡''''¡¡¡¡¡¡¡¡''''¹Ø±ÕÁ¬½Ó ¡¡¡¡''''¡¡¡¡¡¡¡¡Conn.Close() ¡¡¡¡''''¡¡¡¡¡¡¡¡Cmd = Nothing ¡¡¡¡''''¡¡¡¡End Try ¡¡¡¡''''//---------------------------------------- ¡¡¡¡''''//Àý×Ó½áÊø ¡¡¡¡''''//---------------------------------------- ¡¡¡¡''''//---------------------------------------- ¡¡¡¡''''//ÀඨÒ忪ʼ ¡¡¡¡''''//----------------------------------------
¡¡¡¡''''Êý¾ÝÁ¬½ÓÀàÐÍö¾Ù ¡¡¡¡Public Enum ConnectionType As Integer ¡¡¡¡¡¡¡¡OleDb = 1 ¡¡¡¡¡¡¡¡SqlServer = 2 ¡¡¡¡¡¡¡¡''''Oracle = 3 ¡¡¡¡¡¡¡¡''''MySql = 4 ¡¡¡¡End Enum ¡¡¡¡''''Á¬½Ó×Ö·û´®¹¹ÔìÆ÷Àà ¡¡¡¡Public Class ConnectStringBuilder ¡¡¡¡¡¡¡¡Public Shared Function JetOleDb(ByVal DataBasePath As String, Optional ByVal PassWord As String = "") As String ¡¡¡¡¡¡¡¡¡¡¡¡If DataBasePath <> "" Then ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡JetOleDb = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DataBasePath & ";" ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡If PassWord <> "" Then ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡JetOleDb &= "User ID=''''admin'''';Password=;Jet OLEDB:Database Password=" & PassWord ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡End If ¡¡¡¡¡¡¡¡¡¡¡¡End If ¡¡¡¡¡¡¡¡End Function ¡¡¡¡¡¡¡¡Public Shared Function SqlOleDb(Optional ByVal HostName As String = "localhost", Optional ByVal Catalog As String = "", Optional ByVal UserName As String = "sa", Optional ByVal PassWord As String = "") As String ¡¡¡¡¡¡¡¡¡¡¡¡SqlOleDb = "Provider=SQLOLEDB.1;Persist Security Info=False;Data Source=" & HostName & ";Password=" & PassWord & ";User ID=" & UserName & ";" ¡¡¡¡¡¡¡¡¡¡¡¡If Catalog <> "" Then SqlOleDb &= "Initial Catalog=" & Catalog & ";" ¡¡¡¡¡¡¡¡End Function ¡¡¡¡¡¡¡¡Public Shared Function SqlClient(Optional ByVal HostName As String = "localhost", Optional ByVal Catalog As String = "", Optional ByVal UserName As String = "sa", Optional ByVal PassWord As String = "") As String ¡¡¡¡¡¡¡¡¡¡¡¡SqlClient = "Persist Security Info=False;Data Source=" & HostName & ";Password=" & PassWord & ";User ID=" & UserName & ";" ¡¡¡¡¡¡¡¡¡¡¡¡If Catalog <> "" Then SqlClient &= "Initial Catalog=" & Catalog & ";" ¡¡¡¡¡¡¡¡End Function ¡¡¡¡¡¡¡¡Public Shared Function Dsn(ByVal DsnName As String) As String ¡¡¡¡¡¡¡¡¡¡¡¡Return "DSN=" & DsnName ¡¡¡¡¡¡¡¡End Function ¡¡¡¡End Class ¡¡¡¡''''Á¬½Ó¶ÔÏóÀà ¡¡¡¡Public Class Connection ¡¡¡¡¡¡¡¡Private _dbConn As IDbConnection ¡¡¡¡¡¡¡¡Private _ConnStr As String ¡¡¡¡¡¡¡¡Private _dbType As ConnectionType = ConnectionType.OleDb ¡¡¡¡¡¡¡¡Public Sub New(Optional ByVal ConnectType As ConnectionType = ConnectionType.OleDb) ¡¡¡¡¡¡¡¡¡¡¡¡_dbType = ConnectType ¡¡¡¡¡¡¡¡End Sub ¡¡¡¡¡¡¡¡Public Sub New(ByRef Connect As IDbConnection) ¡¡¡¡¡¡¡¡¡¡¡¡If TypeOf Connect Is SqlClient.SqlConnection Then ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡_dbType = ConnectionType.SqlServer ¡¡¡¡¡¡¡¡¡¡¡¡ElseIf TypeOf Connect Is OleDb.OleDbConnection Then ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡_dbType = ConnectionType.OleDb ¡¡¡¡¡¡¡¡¡¡¡¡End If ¡¡¡¡¡¡¡¡End Sub ¡¡¡¡¡¡¡¡Public Sub New(ByVal ConnString As String, Optional ByVal ConnectType As ConnectionType = ConnectionType.OleDb) ¡¡¡¡¡¡¡¡¡¡¡¡_dbType = ConnectType ¡¡¡¡¡¡¡¡¡¡¡¡Me.ConnectString = ConnString ¡¡¡¡¡¡¡¡End Sub ¡¡¡¡¡¡¡¡''''ÉèÖÃ/·µ»ØÁ¬½Ó×Ö·û´®£¬ÉèÖõÄͬʱÉú³ÉеÄÁ¬½Ó¶ÔÏóʵÀý ¡¡¡¡¡¡¡¡Public Property ConnectString() As String ¡¡¡¡¡¡¡¡¡¡¡¡Get ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Return _ConnStr ¡¡¡¡¡¡¡¡¡¡¡¡End Get ¡¡¡¡¡¡¡¡¡¡¡¡Set(ByVal Value As String) ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡_ConnStr = Value ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Try ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡_dbConn.Close() ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Catch ex As Exception ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Finally ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡If Value <> "" Then ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Select Case _dbType ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Case ConnectionType.OleDb ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡_dbConn = New OleDb.OleDbConnection(_ConnStr) ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Case ConnectionType.SqlServer ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡_dbConn = New SqlClient.SqlConnection(_ConnStr) ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Case Else ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡_dbConn = Nothing ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡End Select ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Else ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡_dbConn = Nothing ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡End If ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡End Try ¡¡¡¡¡¡¡¡¡¡¡¡End Set ¡¡¡¡¡¡¡¡End Property ¡¡¡¡¡¡¡¡''''ÉèÖÃ/·µ»ØÁ¬½ÓÀàÐÍ ¡¡¡¡¡¡¡¡Public Property ConnectType() As ConnectionType ¡¡¡¡¡¡¡¡¡¡¡¡Get ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Return _dbType ¡¡¡¡¡¡¡¡¡¡¡¡End Get ¡¡¡¡¡¡¡¡¡¡¡¡Set(ByVal Value As ConnectionType) ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡_dbType = Value ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Me.ConnectString = _ConnStr ¡¡¡¡¡¡¡¡¡¡¡¡End Set ¡¡¡¡¡¡¡¡End Property ¡¡¡¡¡¡¡¡Protected Overrides Sub Finalize() ¡¡¡¡¡¡¡¡¡¡¡¡Try ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡_dbConn.Close() ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡_dbConn.Dispose() ¡¡¡¡¡¡¡¡¡¡¡¡Catch ex As Exception ¡¡¡¡¡¡¡¡¡¡¡¡Finally ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡MyBase.Finalize() ¡¡¡¡¡¡¡¡¡¡¡¡End Try ¡¡¡¡¡¡¡¡End Sub ¡¡¡¡¡¡¡¡''''·µ»ØÁ¬½Ó¶ÔÏó ¡¡¡¡¡¡¡¡Public ReadOnly Property Connection() As IDbConnection ¡¡¡¡¡¡¡¡¡¡¡¡Get ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Return _dbConn ¡¡¡¡¡¡¡¡¡¡¡¡End Get ¡¡¡¡¡¡¡¡End Property ¡¡¡¡¡¡¡¡''''´ò¿ªÒ»¸öÊý¾Ý¿âÁ¬½Ó£¬ÒªÖ¸¶¨Á¬½ÓÀàÐÍ£¨Ä¬ÈÏΪOLEDB£© ¡¡¡¡¡¡¡¡Public Function Open(Optional ByVal ConnString As String = "", Optional ByVal ConnType As ConnectionType = ConnectionType.OleDb) As Boolean ¡¡¡¡¡¡¡¡¡¡¡¡Try ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡If ConnString <> "" Then ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡_ConnStr = ConnString ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡_dbType = ConnType ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡End If ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡_dbConn.Open() ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Return True ¡¡¡¡¡¡¡¡¡¡¡¡Catch ex As Exception ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Throw ex ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Return False ¡¡¡¡¡¡¡¡¡¡¡¡End Try ¡¡¡¡¡¡¡¡End Function ¡¡¡¡¡¡¡¡''''´ò¿ªÒ»¸öACCESSÁ¬½Ó ¡¡¡¡¡¡¡¡Public Function OpenAccess(ByVal DbPath As String, Optional ByVal PassWord As String = "") As Boolean ¡¡¡¡¡¡¡¡¡¡¡¡If DbPath <> "" Then ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Try ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡_ConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DbPath & ";" ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡If PassWord <> "" Then ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡_ConnStr &= "User ID=''''admin'''';Password=;Jet OLEDB:Database Password=" & PassWord ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡End If ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡_dbType = ConnectionType.OleDb ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡_dbConn = New OleDb.OleDbConnection(_ConnStr) ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Return True ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Catch ex As Exception ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Throw ex ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Return False ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡End Try ¡¡¡¡¡¡¡¡¡¡¡¡End If ¡¡¡¡¡¡¡¡End Function ¡¡¡¡¡¡¡¡''''´ò¿ªÒ»¸öSQL SERVERÁ¬½Ó ¡¡¡¡¡¡¡¡Public Function OpenSqlServer(Optional ByVal HostName As String = "localhost", Optional ByVal Catalog As String = "", Optional ByVal UserName As String = "sa", Optional ByVal PassWord As String = "") As Boolean ¡¡¡¡¡¡¡¡¡¡¡¡Try ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡_ConnStr = "Persist Security Info=False;Data Source=" & HostName & ";Password=" & PassWord & ";User ID=" & UserName & ";" ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡If Catalog <> "" Then _ConnStr &= "Initial Catalog=" & Catalog & ";" ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡_dbType = ConnectionType.SqlServer ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡_dbConn = New SqlClient.SqlConnection(_ConnStr) ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Return True ¡¡¡¡¡¡¡¡¡¡¡¡Catch ex As Exception ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Throw ex ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Return False ¡¡¡¡¡¡¡¡¡¡¡¡End Try ¡¡¡¡¡¡¡¡End Function ¡¡¡¡¡¡¡¡''''¹Ø±ÕÊý¾ÝÁ¬½Ó ¡¡¡¡¡¡¡¡Public Sub Close() ¡¡¡¡¡¡¡¡¡¡¡¡Try ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡_dbConn.Close() ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡_dbConn = Nothing ¡¡¡¡¡¡¡¡¡¡¡¡Catch ex As Exception ¡¡¡¡¡¡¡¡¡¡¡¡End Try ¡¡¡¡¡¡¡¡End Sub ¡¡¡¡¡¡¡¡''''Ö´ÐÐÒ»¸öSQLÓï¾ä£¬Éú³É»ò²»Éú³ÉÒ»¸öCommand¶ÔÏó ¡¡¡¡¡¡¡¡Public Function Execute(ByVal Sql As String, Optional ByVal NonQuery As Boolean = False) As Command ¡¡¡¡¡¡¡¡¡¡¡¡Execute = New Command(_dbConn, Sql) ¡¡¡¡¡¡¡¡¡¡¡¡If NonQuery Then Execute.Update() ¡¡¡¡¡¡¡¡End Function ¡¡¡¡¡¡¡¡''''Éú³ÉÒ»¸öDataSet£¬²»ÔÙÐèÒªÊÖ¹¤Éú³ÉDataAdapter¶ÔÏóÁË¡£ ¡¡¡¡¡¡¡¡Public ReadOnly Property DataSource(ByVal Sql As String, Optional ByVal Name As String = "", Optional ByVal Schema As Boolean = False) As DataSet ¡¡¡¡¡¡¡¡¡¡¡¡Get ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Dim Ds As IDataAdapter ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Select Case _dbType ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Case ConnectionType.OleDb ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ds = New OleDb.OleDbDataAdapter(Sql, _dbConn) ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Case ConnectionType.SqlServer ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Ds = New SqlClient.SqlDataAdapter(Sql [1] [2] ÏÂÒ»Ò³ |