【问题标题】:could not update currently locked vb.net error无法更新当前锁定的 vb.net 错误
【发布时间】:2018-04-09 12:04:43
【问题描述】:

我想在 2 个不同的 table of ms-access 中插入 2 个不同的数据。

它显示了这个错误。

我有这样的代码:

try
 dim sql1,sql2 as string
 sql1 = "INSERT INTO table1(something)VALUES(something)"
 cmd = new oledbcommand(sql1, connection)
 cmd.executenoquery()

 sql2 = "INSERT INTO table2(something)VALUES(something)"
 cmd2 = new oledbcommand(sql2, connection)
 cmd2.executenoquery()
catch ex as exception
  msgbox(ex.tostring())

(where these cmd1,cmd2 are defined in controlModule.)

那么,我该怎么办?

感谢任何帮助。谢谢你

【问题讨论】:

  • 您是否在 MS-Access 中以设计模式打开了这些表之一?
  • @Steve 不,我没有。

标签: vb.net sql-insert


【解决方案1】:

我认为关闭连接可以解决问题,最好使用Using-statement:

try
    Using con As OleDbConnection = GetConnection() ' or New OlebConnection(...)
        Using cmd = con.CreateCommand()
            cmd.CommandText = "INSERT INTO table1(something)VALUES(@something)"
            cmd.Parameters.AddWithValue("@something", something)
            con.Open()
            cmd.ExecuteNonQuery()
        End Using
    End Using 

    Using con As OleDbConnection = GetConnection()
        Using cmd = con.CreateCommand()
            cmd.CommandText = "INSERT INTO table2(something)VALUES(@something)"
            cmd.Parameters.AddWithValue("@something", something)
            con.Open()
            cmd.ExecuteNonQuery()
        End Using
    End Using 
Catch ex As Exception
    msgbox(ex.tostring())
End Try 

【讨论】:

  • 谢谢,@Tim Schmelter。它帮助了我。
【解决方案2】:

这是一个并发问题。因为您的代码的其他部分或 MS Access 本身同时访问数据库。 事实是您在使用后没有关闭连接。因此,第二次调用应该会因该异常而失败。相反,你应该包装你的一次性用品 - 例如。 OleDbConnection、命令等 - 在 using 语句中。这样,即使发生异常,连接也会关闭:

    Using con As New OleDbConnection, cmd1 As OleDbCommand = con.CreateCommand, cmd2 As OleDbCommand = con.CreateCommand()
        cmd1.CommandText = "INSERT INTO table1(something)VALUES(something)"
        cmd1.ExecuteNonQuery()

        cmd2.CommandText = "INSERT INTO table2(something)VALUES(something)"
        cmd2.ExecuteNonQuery()
    End Using

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-20
    • 2020-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多