C# 操作.mdb文件出现.ldb锁死文件 无法删除.mdb文件 有个问题困扰我很长时间了 access数据库操作 当访问.mdb文件会出现一个.ldb锁死文件 我想用代码删除.mdb文件 可是操作不了 提示被另一个程序调用 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 请参考我的代码c#做法类似 Dim SaveFile As String = "F:test.mdb" Dim SaveFileName As String = SaveFile Dim Cat As New ADOX.Catalog Cat.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + SaveFile + ";") Dim tbl As New ADOX.Table() tbl.ParentCatalog = Cat tbl.Name = "Table1" '增加字段 tbl.Columns.Append("id", ADOX.DataTypeEnum.adInteger) tbl.Columns.Append("工况", ADOX.DataTypeEnum.adVarWChar, 255) tbl.Columns.Append("船舶运动", ADOX.DataTypeEnum.adVarWChar, 255) tbl.Columns.Append("纵荡加速度", ADOX.DataTypeEnum.adVarWChar, 255) tbl.Columns.Append("横荡加速度", ADOX.DataTypeEnum.adVarWChar, 255) tbl.Columns.Append("垂荡加速度", ADOX.DataTypeEnum.adVarWChar, 255) tbl.Columns.Append("测试", ADOX.DataTypeEnum.adVarWChar, 255) tbl.Columns.Append("测试2", ADOX.DataTypeEnum.adVarBinary) '主键 tbl.Columns("id").Properties("autoincrement").Value = True tbl.Keys.Append("PrimaryKey", ADOX.KeyTypeEnum.adKeyPrimary, "id") Cat.Tables.Append(tbl) ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''写入ACCESS数据库 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Dim ConnectionStr As String = "Provider=Microsoft.jet.OLEDB.4.0;Data Source=" & SaveFile Dim myConn As New OleDbConnection myConn.ConnectionString = ConnectionStr Dim sqlString As String Dim myCmd As OleDb.OleDbCommand = Nothing myConn.Open() sqlString = "INSERT INTO Table1 (工况,船舶运动,纵荡加速度,横荡加速度,垂荡加速度,测试,测试2) " sqlString = sqlString + vbCrLf + "VALUES(@工况,@船舶运动,@纵荡加速度,@横荡加速度,@垂荡加速度,@测试,@测试2)" For i As Integer = 1 To 200 myCmd = New OleDbCommand(sqlString, myConn) myCmd.Parameters.AddWithValue("@工况", "满载") myCmd.Parameters.AddWithValue("@船舶运动", "纵摇") myCmd.Parameters.AddWithValue("@纵荡加速度", i) myCmd.Parameters.AddWithValue("@横荡加速度", i) myCmd.Parameters.AddWithValue("@垂荡加速度", i) myCmd.Parameters.AddWithValue("@测试", i) myCmd.Parameters.AddWithValue("@测试2", i * i) myCmd.ExecuteNonQuery() Next myCmd.Dispose() myCmd = Nothing myConn.Close() myConn.Dispose() myConn = Nothing '释放ldb文件的关键 Cat.ActiveConnection.Close() System.Runtime.InteropServices.Marshal.ReleaseComObject(tbl) System.Runtime.InteropServices.Marshal.FinalReleaseComObject(tbl) System.Runtime.InteropServices.Marshal.ReleaseComObject(Cat) System.Runtime.InteropServices.Marshal.FinalReleaseComObject(Cat) Cat = Nothing GC.WaitForPendingFinalizers() GC.Collect() GC.WaitForPendingFinalizers() GC.Collect() If My.Computer.FileSystem.FileExists(SaveFile) = True Then My.Computer.FileSystem.DeleteFile(SaveFile) End If 谁能给我解释一下? 如何把一个项目分解成若干个DLL文件? 背包问题。求详细的解释。代码已经写好了。 UDP协议是否只能在局域网内使用?因特网行不?? 11点了,估计大家都空闲下来了,问个在csdn里面出现率一直很高的问题 很有意义的多线程问题,请高手解答 怎么样跳出一个欢迎框? 提问事件问题,谢谢各位了! 有开发高手马,小弟请教一问题 英文不好,外过的很多技术资料全看不了 c# 外部调用程序 实时显示输出的问题 遇到了3个错误,不知怎么解决
c#做法类似 Dim SaveFile As String = "F:test.mdb"
Dim SaveFileName As String = SaveFile
Dim Cat As New ADOX.Catalog Cat.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + SaveFile + ";")
Dim tbl As New ADOX.Table()
tbl.ParentCatalog = Cat
tbl.Name = "Table1" '增加字段
tbl.Columns.Append("id", ADOX.DataTypeEnum.adInteger)
tbl.Columns.Append("工况", ADOX.DataTypeEnum.adVarWChar, 255)
tbl.Columns.Append("船舶运动", ADOX.DataTypeEnum.adVarWChar, 255)
tbl.Columns.Append("纵荡加速度", ADOX.DataTypeEnum.adVarWChar, 255)
tbl.Columns.Append("横荡加速度", ADOX.DataTypeEnum.adVarWChar, 255)
tbl.Columns.Append("垂荡加速度", ADOX.DataTypeEnum.adVarWChar, 255)
tbl.Columns.Append("测试", ADOX.DataTypeEnum.adVarWChar, 255)
tbl.Columns.Append("测试2", ADOX.DataTypeEnum.adVarBinary) '主键
tbl.Columns("id").Properties("autoincrement").Value = True
tbl.Keys.Append("PrimaryKey", ADOX.KeyTypeEnum.adKeyPrimary, "id")
Cat.Tables.Append(tbl) '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''写入ACCESS数据库
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Dim ConnectionStr As String = "Provider=Microsoft.jet.OLEDB.4.0;Data Source=" & SaveFile
Dim myConn As New OleDbConnection
myConn.ConnectionString = ConnectionStr
Dim sqlString As String
Dim myCmd As OleDb.OleDbCommand = Nothing
myConn.Open()
sqlString = "INSERT INTO Table1 (工况,船舶运动,纵荡加速度,横荡加速度,垂荡加速度,测试,测试2) "
sqlString = sqlString + vbCrLf + "VALUES(@工况,@船舶运动,@纵荡加速度,@横荡加速度,@垂荡加速度,@测试,@测试2)"
For i As Integer = 1 To 200
myCmd = New OleDbCommand(sqlString, myConn)
myCmd.Parameters.AddWithValue("@工况", "满载")
myCmd.Parameters.AddWithValue("@船舶运动", "纵摇")
myCmd.Parameters.AddWithValue("@纵荡加速度", i)
myCmd.Parameters.AddWithValue("@横荡加速度", i)
myCmd.Parameters.AddWithValue("@垂荡加速度", i)
myCmd.Parameters.AddWithValue("@测试", i)
myCmd.Parameters.AddWithValue("@测试2", i * i)
myCmd.ExecuteNonQuery()
Next
myCmd.Dispose()
myCmd = Nothing
myConn.Close()
myConn.Dispose()
myConn = Nothing '释放ldb文件的关键
Cat.ActiveConnection.Close() System.Runtime.InteropServices.Marshal.ReleaseComObject(tbl)
System.Runtime.InteropServices.Marshal.FinalReleaseComObject(tbl) System.Runtime.InteropServices.Marshal.ReleaseComObject(Cat)
System.Runtime.InteropServices.Marshal.FinalReleaseComObject(Cat)
Cat = Nothing
GC.WaitForPendingFinalizers()
GC.Collect() GC.WaitForPendingFinalizers()
GC.Collect() If My.Computer.FileSystem.FileExists(SaveFile) = True Then
My.Computer.FileSystem.DeleteFile(SaveFile)
End If