【发布时间】:2021-01-13 00:33:54
【问题描述】:
我有一个带有 DataGridView 和一个按钮的表单。他们正在与 Access (.mdb) 数据库进行交互。单击按钮时,我希望它更新表中的数据。
我收到以下错误:
“OleDbConnection”类型的值无法转换为 'SqlConnection'。
我的代码:
Imports System.Data.OleDb
Imports System.Data.SqlClient
Public Class Form1
Public conn As New OleDbConnection
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim DS As New DataSet
Dim DT As New DataTable
DS.Tables.Add(DT)
Dim objConn As String = "Provider=Microsoft.JET.OLEDB.4.0; Data Source = Swiftest.mdb"
conn.ConnectionString = objConn
Dim objDA As New OleDb.OleDbDataAdapter("SELECT * FROM tblOptions", conn)
objDA.Fill(DT)
DataGridView1.DataSource = DT.DefaultView
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim SqlQuery As String = "'UPDATE tblOptions Set fldShow = '1' WHERE fldID = '13'"
conn.Open()
Dim com As New SqlCommand(SqlQuery, conn)
End Sub
End Class
感谢阅读
【问题讨论】:
-
删除此:
Public conn As New OleDbConnection和此:Imports System.Data.SqlClient(此处未使用),声明连接和 OleDbCommand(不是 SqlCommand),两者都使用Using语句,所以你会立即处理这些物品。 -- 你不需要数据集。您可能需要OleDbDataAdapter来更新数据库。旁注:需要使用完整路径或使用|DataDirectory|设置声明数据库路径。 -
您好 Jimi,感谢您的回复。如何使用适配器而不是数据集?
-
Updating Data Sources with DataAdapters。使用您在那里找到的信息搜索 SO。关于这个主题的许多答案。