2016-01-07 101 views
0

从vb程序插入查询不会在访问数据库中添加记录。SQL插入没有结果

database connection class--> 
Imports System.Data.OleDb 
Public Class Data 
    Shared dbconnection As OleDbConnection 
    Shared dbcommand As OleDbCommand 
    Shared dbadapter As OleDbDataAdapter 
    Shared connectionString As String =  "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\DELL\Documents\Visual Studio 2013\Projects\Chakana saving and credit\Chakana saving and credit\Chakana.mdb" 
Shared dbtable As DataTable 
Public Shared Function loadData(query As String, Optional ReturnValue As Boolean = False) 
    dbconnection = New OleDbConnection(connectionString) 
    dbadapter = New OleDbDataAdapter 
    dbtable = New DataTable() 
    dbcommand = New OleDbCommand(query) 
    dbcommand.CommandType = CommandType.TableDirect 
    dbadapter.SelectCommand = dbcommand 
    dbadapter.SelectCommand.Connection = dbconnection 
    dbconnection.Open() 
    'MsgBox("query lexecute") 
    If ReturnValue = True Then 
     dbadapter.Fill(dbtable) 
     Return dbtable 
    Else 
     Return 0 
    End If 


End Function 

末级

函数调用传递参数查询

query = "INSERT INTO CustomerInfo (ClientId,FirstName) VALUES ('23','abce')" 
    Data.loadData(query) 

其他调用函数传递一个SELECT查询工作正常,但是当我尝试插入查询和事后从访问它打开数据库没有结果

+0

您还没有执行过 – Steve

+0

那么为什么选择查询(其它形式)执行正确调用这个非常相同的功能,当查询? query =“SELECT Password,AccountType FROM Cooperative WHERE UserName =”+“'”+用户名+“'” tdata = Data.loadData(query,True) –

+0

您将更新查询设置为select命令。 –

回答

0

您还没有执行你的DataAdapter填补DataTable(因为了returnvalue默认设置为false),再加上你不要也不需要定义的returnValue也不DataAdapter只是填充表。我推荐给你的功能更改为类似这样:

Imports System.Data.OleDb 
Public Class Data 

    Shared connectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\DELL\Documents\Visual Studio 2013\Projects\Chakana saving and credit\Chakana saving and credit\Chakana.mdb" 

    Public Shared Function loadData(query As String) As DataTable 
     Dim dbtable As New DataTable 
     Dim dbcommand As New OleDbCommand(query) 
     dbcommand.Connection = New OleDbConnection(connectionString) 
     dbcommand.CommandType = CommandType.TableDirect 
     dbcommand.Connection.Open() 
     dbtable.Load(dbcommand.ExecuteReader()) 
     dbcommand.Connection.Close() 
     Return dbtable 
    End Function 

End Class