我用VB.NET编程操作ACCESS为什么不能做插入修改?查询可以~~~~~~~~

wangdongxing01 2010-04-09 02:32:12
我现在用VB.NET对ACCESS做数据操作.估计数据连接应该没问题,查询操作可以查出数据,可当做插入操作时.能执行,执行中也没有报错,但是就是表里没有插入想对应的数据.SQL语句打出来,在查询分析器里也可以执行.这是为什么,另外修改操作也是这个问题.实在是找不出错误.如果谁有更好的操作ACCESS做增改的数据操作类,麻烦分享一下我在试试也行,郁闷~~~~~~~
...全文
108 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhang286104091 2010-04-09
  • 打赏
  • 举报
回复
也晕了,我建议你设个断点,先从连接开始查看是否成功,然后看语句,最后看执行的返回值,成功还是失败,然后找具体哪段代码的问题,在贴出来。OK?
qshurufa 2010-04-09
  • 打赏
  • 举报
回复
看着有些晕。你输出异常看看是什么错误
wangdongxing01 2010-04-09
  • 打赏
  • 举报
回复
上面的是数据操作类.
Dim sss As Veehu.MyDB = New Veehu.MyDB

Dim sqlString As String = "insert into ceshi(yinhang, kuan, xiang, mu, danwei, zijin) values('" & str & "','" & str1 & "','" & str2 & "','" & str3 & "','" & str4 & "','" & str5 & "')"
sss.RunSql(sqlString)
用的是数据操作类里面的RunSql方法.
执行没错误,还可以查询,就是插入和修改不了
wangdongxing01 2010-04-09
  • 打赏
  • 举报
回复
代码有点多啊.
Imports System
Imports System.Data
Imports System.Data.SqlClient
Imports System.Data.OleDb
Imports System.Configuration
Imports System.Runtime.InteropServices



Namespace Veehu

' 数据库访问
' by veehu.com

Public Class MyDB
Dim sConnString As String
Dim odb As DBInterface

ReadOnly Property DbType() As String
Get
Return sDbType
End Get
End Property

ReadOnly Property ConnString() As String
Get
Return sConnString
End Get
End Property

Public Sub New()

sConnString = String.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\KAIYUAN.mdb")

odb = New DBOleDB(sConnString)

End Sub

Public Sub BeginTransaction()
odb.BeginTransaction()
End Sub

Public Sub Rollback()
odb.RollBack()
End Sub

Public Sub Commit()
odb.Commit()
End Sub

Public Sub RunSql(ByVal sql As String)
odb.RunSql(sql)
End Sub

Public Sub Close()
odb.Close()
End Sub

End Class

Public Interface DBInterface

Sub RunSql(ByVal sql As String)

Sub BeginTransaction()
Sub Rollback()
Sub Commit()
Sub Close()

End Interface

Public Class DBOleDB
Implements DBInterface


Dim _DBConn As OleDb.OleDbConnection
Dim _Adapter As OleDb.OleDbDataAdapter
Dim _DBCmd As OleDb.OleDbCommand
Dim _DBTrans As OleDb.OleDbTransaction


'构造函数
Public Sub New(ByVal strConn As String)
_DBConn = New OleDb.OleDbConnection(strConn)
_DBConn.Open()
_DBTrans = Nothing
End Sub

'打开连接
Private Sub Open()
If Not (_DBConn Is Nothing) Then
If _DBConn.State <> ConnectionState.Open Then
_DBConn.Open()
End If
End If
End Sub

Public Sub Close() Implements DBInterface.Close
If Not (_DBConn Is Nothing) Then
_DBConn.Close()
_DBConn = Nothing
End If
End Sub

'用于执行INSERT,UPDATE,DELETE语句
Public Sub RunSql(ByVal sql As String) Implements DBInterface.RunSql

Try
Open()
_DBCmd = New OleDb.OleDbCommand
_DBCmd.CommandText = sql
_DBCmd.Connection = _DBConn

If Not (_DBTrans Is Nothing) Then
_DBCmd.Transaction = _DBTrans
End If

_DBCmd.ExecuteNonQuery()

Catch ex As Exception
Throw ex
End Try
End Sub


Public Sub BeginTransaction() Implements DBInterface.BeginTransaction
_DBTrans = _DBConn.BeginTransaction()
End Sub

Public Sub Rollback() Implements DBInterface.Rollback
If Not (_DBTrans Is Nothing) Then
_DBTrans.Rollback()
_DBConn.Close()
_DBTrans = Nothing
End If
End Sub

Public Sub Commit() Implements DBInterface.Commit
If Not (_DBTrans Is Nothing) Then
_DBTrans.Commit()
_DBConn.Close()
_DBTrans = Nothing
End If
End Sub

End Class

Public Class DBSqlServer
Implements DBInterface

Dim _DBConn As SqlClient.SqlConnection
Dim _Adapter As SqlClient.SqlDataAdapter
Dim _DBCmd As SqlClient.SqlCommand
Dim _DBTrans As SqlClient.SqlTransaction

'构造函数
Public Sub New(ByVal strConn As String)
_DBConn = New SqlClient.SqlConnection(strConn)
_DBConn.Open()
_DBTrans = Nothing
End Sub

'打开连接
Private Sub Open()
If Not (_DBConn Is Nothing) Then
If _DBConn.State <> ConnectionState.Open Then
_DBConn.Open()
End If
End If
End Sub
'用于执行INSERT,UPDATE,DELETE语句
Public Sub RunSql(ByVal sql As String) Implements DBInterface.RunSql

Try
Open()
_DBCmd = New OleDb.OleDbCommand
_DBCmd.CommandText = sql
_DBCmd.Connection = _DBConn

If Not (_DBTrans Is Nothing) Then
_DBCmd.Transaction = _DBTrans
End If

_DBCmd.ExecuteNonQuery()

Catch ex As Exception
Throw ex
End Try
End Sub
Public Sub Close() Implements DBInterface.Close
If Not (_DBConn Is Nothing) Then
_DBConn.Close()
_DBConn = Nothing
End If
End Sub





Public Sub BeginTransaction() Implements DBInterface.BeginTransaction
_DBTrans = _DBConn.BeginTransaction()
End Sub

Public Sub Rollback() Implements DBInterface.Rollback
If Not (_DBTrans Is Nothing) Then
_DBTrans.Rollback()
_DBConn.Close()
_DBTrans = Nothing
End If
End Sub

Public Sub Commit() Implements DBInterface.Commit
If Not (_DBTrans Is Nothing) Then
_DBTrans.Commit()
_DBConn.Close()
_DBTrans = Nothing
End If
End Sub

End Class
End Namespace
qshurufa 2010-04-09
  • 打赏
  • 举报
回复
把你写的代码贴出来看看

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧