首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

求VB.NET数据库模块功能!解决方案

2012-01-19 
求VB.NET数据库模块功能!求VB.NET数据库模块功能!功能:增加修改删除指定显示记录..分不够不再加,回的内容

求VB.NET数据库模块功能!
求VB.NET数据库模块功能!

功能:增加
          修改
          删除
        指定显示记录..

分不够不再加,回的内容不好再给!



[解决办法]
不都是操作SQL来做操作的么

LZ可以先去下载一个例子来研究,这样问没有实际意义
[解决办法]
能具体一点么?
[解决办法]
'删除、增加、修改
Public Function UpdateData(ByVal sqlstr As String) As Boolean Implements DatacnnLab.DataLab.UpdateData
Dim cmm As New SqlCommand
Try
cnn.Open()
cmm.Connection = cnn
cmm.CommandText = sqlstr
cmm.CommandType = CommandType.Text
cmm.ExecuteNonQuery()
cnn.Close()

Return True

Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.OKOnly, "警告 ")
Catch
MsgBox( "错误号: " & Err.Number & Chr(13) & "错误描述: " & Err.Description)
Return False
End Try
End Function

'检验记录是否存在
Public Function RecInDataBase(ByVal strSQL As String) As Boolean Implements DatacnnLab.DataLab.RecInDataBase
Dim objDataSet As DataSet = New DataSet
Dim objDataAdpter As SqlDataAdapter
Try

cnn.Open()

objDataAdpter = New SqlDataAdapter(strSQL, cnn)

objDataAdpter.Fill(objDataSet)

cnn.Close()
Catch
MsgBox( "错误号: " & Err.Number & Chr(13) & "错误描述: " & Err.Description)
End Try

If objDataSet.Tables(0).Rows.Count > 0 Then
Return True
Else
Return False
End If
objDataSet = Nothing
End Function

'返回记录集
Public Function GetDataFromDB(ByVal sqlstr As String, Optional ByVal TableName As String = " ") As DataSet Implements DatacnnLab.DataLab.GetDataFromDB

Dim objDataSet As DataSet = New DataSet
Try
objDataSet.Clear()


cnn.Open()

Dim objDataAdpter As SqlDataAdapter = New SqlDataAdapter(sqlstr, cnn)

If TableName.Trim = " " Then
objDataAdpter.Fill(objDataSet)
Else

objDataAdpter.Fill(objDataSet, TableName)

End If

cnn.Close()
Catch
MsgBox( "错误号: " & Err.Number & "错误描述: " & Err.Description)
cnn.Close()
End Try

Return objDataSet

objDataSet = Nothing

End Function

'得到一个值
Public Function GetOneValue(ByVal strSQL As String) As String Implements DatacnnLab.DataLab.GetOneValue

Dim objDataSet As DataSet = New DataSet

Try

cnn.Open()

Dim objDataAdpter As SqlDataAdapter = New SqlDataAdapter(strSQL, cnn)

objDataAdpter.Fill(objDataSet)

cnn.Close()
Catch
MsgBox( "错误号: " & Err.Number & "错误描述: " & Err.Description)
cnn.Close()
End Try

If objDataSet.Tables(0).Rows.Count > 0 Then


Return CStr(objDataSet.Tables(0).Rows(0).Item(0))
Else
Return " "
End If
objDataSet = Nothing

End Function
[解决办法]
微软的企业库
[解决办法]
' ' SqlClientの各クラスを利用したデータベースアクセスクラス
Public Class DatabaseAccess
Private sqlConn As SqlClient.SqlConnection 'DB接続
'Private frmBusy As form 'ビジーメッセージフォーム

'コンストラクタ
Public Sub New()
'DB接続インスタンス生成
Me.sqlConn = New SqlClient.SqlConnection
End Sub

'コンストラクタ
' sConnStr - DB接続文(ConnectionString)
Public Sub New(ByVal sConnStr As String)
'DB接続インスタンス生成
Me.sqlConn = New SqlClient.SqlConnection

If sConnStr <> Nothing Then
'DB接続文設定
Me.sqlConn.ConnectionString = sConnStr
Else
Console.Out.WriteLine( "Warning: CconnectionString is Nothing. ")
End If
End Sub

'DB接続インスタンス取得
Public ReadOnly Property Connection() As SqlClient.SqlConnection
Get
Return Me.sqlConn
End Get
End Property

#If 0 Then
'ビジーメッセージフォーム取得/設定
Public Property BusyMessageForm() As Form
Get
Return Me.frmBusy
End Get
Set(ByVal Value As Form)
Me.frmBusy = Value
End Set
End Property
#End If

'データベース接続
Public Sub Open()
Try
Me.sqlConn.Open()
Catch exception As SystemException
Console.Error.WriteLine(exception.Message)
Console.Error.WriteLine(exception.StackTrace)
Throw New Exception( "データベースへ接続できませんでした。 ", exception)
End Try
End Sub

'データベース切断
Public Sub Close()
'既に閉じている場合は無視する
If Me.sqlConn.State = ConnectionState.Closed Then Exit Sub

Try
Me.sqlConn.Close()
Catch
End Try
End Sub

'テーブルからのデータ取得
' sSql - SELECT文
' 戻り値 - データを格納したSqlDataReaderオブジェクト
Public Function ExecuteReader(ByVal sSql As String) As SqlClient.SqlDataReader
Dim sqlCmd As New SqlClient.SqlCommand

'ビジーメッセージ表示
'Me.ShowBusyMessage()

Try
'接続チェック
Me.ConnectionCheck()

'クエリ送信
sqlCmd.Connection = sqlConn
sqlCmd.CommandText = sSql
ExecuteReader = sqlCmd.ExecuteReader(CommandBehavior.CloseConnection)
Catch exception As SystemException
'クエリ送信時の例外処理
Console.Error.WriteLine(exception.Message)
Console.Error.WriteLine(exception.StackTrace)
Throw New SystemException( "データベースからのデータ取得に失敗しました。 ", exception)
Catch exception As Exception
'接続チェックの例外はそのままスロー
Throw exception
Finally
'ビジーメッセージ非表示
'Me.HideBusyMessage()
End Try
End Function

'テーブルからのデータ取得
' sSql - UPDATE、INSERT、DELETE等のSQLコマンド
' 戻り値 - 影響を受けた行数
Public Function ExecuteNonQuery(ByVal sSql As String) As Integer


Dim sqlCmd As New SqlClient.SqlCommand

'ビジーメッセージ表示
'Me.ShowBusyMessage()

Try
'接続チェック
Me.ConnectionCheck()

'コマンド送信
sqlCmd.Connection = sqlConn
sqlCmd.CommandText = sSql
ExecuteNonQuery = sqlCmd.ExecuteNonQuery()
Catch exception As SystemException
'コマンド送信時の例外処理
Console.Error.WriteLine(exception.Message)
Console.Error.WriteLine(exception.StackTrace)
Throw New SystemException( "データベースのデータ更新に失敗しました。 ", exception)
Catch exception As Exception
'接続チェックの例外はそのままスロー
Throw exception
Finally
'ビジーメッセージ非表示
'Me.HideBusyMessage()
End Try
End Function

'テーブルからのデータ取得
' sSql - SELECT文
' 戻り値 - データを格納したDataTableオブジェクト
Public Function FillDataTable(ByVal sSql As String) As DataTable
Dim sqlAdapter As New SqlClient.SqlDataAdapter
Dim sqlCmd As New SqlClient.SqlCommand
Dim datTbl As New DataTable

'ビジーメッセージ表示
'Me.ShowBusyMessage()

Try
'接続チェック
Me.ConnectionCheck()

'クエリ送信
sqlCmd.Connection = sqlConn
sqlCmd.CommandText = sSql
sqlAdapter.SelectCommand = sqlCmd
sqlAdapter.Fill(datTbl)
FillDataTable = datTbl
Catch exception As SystemException
'クエリ送信時の例外処理
Console.Error.WriteLine(exception.Message)
Console.Error.WriteLine(exception.StackTrace)
Throw New SystemException( "データベースからのデータ取得に失敗しました。 ", exception)
Catch exception As Exception
'接続チェックの例外はそのままスロー
Throw exception
Finally
'ビジーメッセージ非表示
'Me.HideBusyMessage()
End Try
End Function

'テーブルからのデータ取得
' sSql - SELECT文
' 戻り値 - データを格納したDataTableオブジェクト
Public Function FillDataSet(ByVal sSql As String) As DataSet
Dim sqlAdapter As New SqlClient.SqlDataAdapter
Dim sqlCmd As New SqlClient.SqlCommand
Dim datSet As New DataSet

'ビジーメッセージ表示
'Me.ShowBusyMessage()

Try
'接続チェック
Me.ConnectionCheck()

'クエリ送信
sqlCmd.Connection = sqlConn
sqlCmd.CommandText = sSql
sqlAdapter.SelectCommand = sqlCmd
sqlAdapter.Fill(datSet)
FillDataSet = datSet
Catch exception As SystemException
'クエリ送信時の例外処理
Console.Error.WriteLine(exception.Message)
Console.Error.WriteLine(exception.StackTrace)
Throw New SystemException( "データベースからのデータ取得に失敗しました。 ", exception)
Catch exception As Exception
'接続チェックの例外はそのままスロー
Throw exception
Finally
'ビジーメッセージ非表示
'Me.HideBusyMessage()
End Try
End Function

'データベース接続チェック
Private Sub ConnectionCheck()
'接続が維持されている場合は無視
If Me.sqlConn.State <> ConnectionState.Closed Then Exit Sub

'切断している場合は再接続
Try
Me.Open()
Catch exception As Exception


Throw exception
End Try
End Sub

#If 0 Then
'ビジーメッセージ表示
Private Sub ShowBusyMessage()
If IsNothing(Me.frmBusy) Then Exit Sub
Me.frmBusy.Show()
End Sub

'ビジーメッセージ非表示
Private Sub HideBusyMessage()
If IsNothing(Me.frmBusy) Then Exit Sub
Me.frmBusy.Hide()
End Sub
#End If
End Class

[解决办法]
很全了已经
[解决办法]
把后面接口的那部分出掉就行啦,从这里开始Implements全部去掉

热点排行