INSERT INTO sql代码连接问题

时间:2017-12-29 11:54:20

标签: sql vb.net

我已成功设法使用SELECTDELETE SQL语句,现在我正在尝试使用INSERT INTO。但是我一直收到这个错误:

  

ExecuteNonQuery需要一个开放且可用的连接。该   连接的当前状态已关闭。

所以我尝试将con.Open()放在一边看看是否会有所帮助,我收到了这个错误:

  

ConnectionString属性尚未初始化。

我想知道是否有人知道我做错了什么。或者只要有人有任何工作代码。我希望不使用参数,如果可能的话,因为我根本不理解它们。这是我的SQL代码:

Dim con As OleDb.OleDbConnection
Dim comm As OleDb.OleDbCommand
con = SQLConnect()
comm = New OleDb.OleDbCommand()
comm.CommandText = "INSERT INTO " & TableName & " (" & Column & ") VALUES (" & Value & ")"
comm.Connection = con
comm.ExecuteNonQuery()
con.Close()

以下是连接代码:

Public Function SQLConnect() As OleDb.OleDbConnection
    If Connector.State = ConnectionState.Open Then
        dbprovider = "PROVIDER=Microsoft.ACE.OLEDB.12.0;"
        dbsource = "Data Source = NEA.accdb"
        Connector.ConnectionString = dbprovider & dbsource

        Connector.Open()
    End If
    Return Connector

End Function

1 个答案:

答案 0 :(得分:0)

使用一个打开的连接和一个关闭连接,如下所示:

  1. 打开连接
  2. 执行所有DELETE和INSERT查询。
  3. 关闭连接。
  4. 试试这个:

    con.Open()
    comm.Connection = con
    
    comm.CommandText = "DELETE ..."
    comm.ExecuteNonQuery()
    
    comm.CommandText = "INSERT INTO " & TableName & " (" & Column & ") VALUES (" & Value & ")"
    comm.ExecuteNonQuery()
    con.Close()
    

    BTW,我建议你在sql查询中使用参数而不是字符串连接。为了避免sql注入。