, _dbConn) End Select If Name = "" Then DataSource = New DataSet Else DataSource = New DataSet(Name) End If If Schema Then Ds.FillSchema(DataSource, SchemaType.Source) Ds.Fill(DataSource) End Get End Property End Class ''''命令行类 Public Class Command Private _Cmd As IDbCommand Private _Sql As String Private _Conn As IDbConnection Private _rdr As IDataReader Private _dbType As ConnectionType Public Sub New(ByRef Connect As IDbConnection) _Conn = Connect If TypeOf Connect Is OleDb.OleDbConnection Then _dbType = ConnectionType.OleDb ElseIf TypeOf Connect Is SqlClient.SqlConnection Then _dbType = ConnectionType.SqlServer End If End Sub Public Sub New(ByRef Connect As IDbConnection, ByVal Sql As String) _Conn = Connect If TypeOf Connect Is OleDb.OleDbConnection Then _dbType = ConnectionType.OleDb ElseIf TypeOf Connect Is SqlClient.SqlConnection Then _dbType = ConnectionType.SqlServer End If Me.Sql = Sql End Sub Protected Overrides Sub Finalize() Try _Cmd.Dispose() _rdr.Dispose() _Conn.Dispose() Catch ex As Exception Finally MyBase.Finalize() End Try End Sub ''''设置或返回连接对象 Public Property Connect() As IDbConnection Get Return _Conn End Get Set(ByVal Value As IDbConnection) _Conn = Value End Set End Property ''''读取或设置SQL语句 Public Property Sql() As String Get Return _Sql End Get Set(ByVal Value As String) _Sql = Value If _dbType = ConnectionType.SqlServer Then _Cmd = New SqlClient.SqlCommand(Sql, _Conn) Else _Cmd = New OleDb.OleDbCommand(_Sql, _Conn) End If End Set End Property ''''读取下一记录行,如果记录集没有打开,则自动打开。 Public Function Read(Optional ByVal Behavior As System.Data.CommandBehavior = CommandBehavior.Default) As Boolean If _rdr Is Nothing Then Try _rdr = _Cmd.ExecuteReader(Behavior) Return _rdr.Read Catch ex As Exception Return False End Try Return False Else Return _rdr.Read End If End Function ''''//返回字段数 Public Function FieldCount() As Integer Try Return _rdr.FieldCount Catch ex As Exception Return 0 End Try End Function ''''//执行命令 Public Function Update() As Boolean Try If _Conn.State <> ConnectionState.Open Then _Conn.Open() End If _Cmd.ExecuteNonQuery() Return True Catch ex As Exception Throw ex Return False End Try End Function ''''//读取字段或添加SQL的命名参数 Default Public Property Item(ByVal Name As String) Get Return _rdr(Name) End Get Set(ByVal Value) AddParam(Value, Name) End Set End Property ''''//读取字段 Default Public ReadOnly Property Item(ByVal Index As Integer) Get Return _rdr(Index) End Get End Property ''''//添加参数 Public Function AddParam(ByRef Value As Object, Optional ByVal Name As String = "") If _dbType = ConnectionType.OleDb Then Return CType(_Cmd, OleDb.OleDbCommand).Parameters.Add(Name, Value) Else Return _Cmd.Parameters.Add(New SqlClient.SqlParameter("@" & Name, Value)) End If End Function End Class End Namespace
上一页 [1] [2] [C语言系列]NET 中C#的switch语句的语法 [系统软件]托拽Explore中的文件到VB.net的窗口 [系统软件]Boost库在XP+Visual C++.net中的安装 [常用软件]新配色面板:Paint.Net3.0RC1官方下载 [常用软件]用内建的“Net Meeting”聊天 [VB.NET程序]Henry的VB.NET之旅(三)—共享成员 [VB.NET程序]Henry的VB.NET之旅(二)—构造与析构 [VB.NET程序]Henry的VB.NET之旅(一)—失踪的窗体 [VB.NET程序]在托盘上显示Balloon Tooltip(VB.NET) [VB.NET程序]Henry手记-VB.NET中动态加载Treeview节点(二)
|