问题描述
我正在制作一个应用程序,我想在其中重命名访问数据库表。我使用 OLEDBConnection 连接到数据库,并选择了我在注册时创建的带有 textBox.Text 的表格。在另一种形式中,我应该更改用户名,但是当我这样做时,我的选择表系统将崩溃。
(我看了一些教程,但是microsoft MSDN 对我来说不是很清楚)
pro = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source = Z:\Password manager\Password
Database\Database.accdb"
connstring = pro
myconn.ConnectionString = connstring
Dim cmd As OleDbCommand = New OleDbCommand("UPDATE LogIN SET [Meno]='" & txtName.Text &
"',[Heslo]='" & EncryptText(txtPass.Text) & "',[E-mail]='" & txtMail.Text & "' WHERE
Meno= '" & txtName.Text & "'",myconn)
If myconn.State = ConnectionState.Closed Then myconn.open()
Try
cmd.ExecuteNonQuery()
cmd.dispose()
MsgBox("Your name was changed")
Catch ex As Exception
MsgBox("Error")
End Try
myconn.Close()
My.Settings.LogINSetting = txtName.Text
My.Settings.Save()
解决方法
您可以使用 ADOX 来执行此操作。在您的项目中,添加对 Microsoft ADO Ext 的引用。 6.0 用于 DDL 和安全(在 COM 下)并使用 Catalog Object:
Dim ADOXCatalog As New ADOX.Catalog
ADOXCatalog.ActiveConnection = myconn
ADOXCatalog.Tables("CurrentTableName").Name = "NewTableName"