Hye ...我目前正在使用vb.net做最后一年的项目,并且出现此错误。我试着'来解决这个错误,但仍然不成功。我在我的项目中使用ms访问数据库。我尝试在'dt'语句之前放置con.Open(),在'cboProduct.Select'之后放置con.Close(),但结果相同。真的很感谢你的帮助。谢谢:)连接未关闭连接当前状态已打开
'GLOBAL DECLARATIONS
Dim conString As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Acer User\Documents\MAKLUMAT IVENTORI.accdb"
Dim con As OleDbConnection = New OleDbConnection(conString)
Dim adapter As New OleDbDataAdapter
Dim cmd As New OleDbCommand
Dim dt As New DataTable
Dim ds As New DataSet
Private Sub RefreshData()
dt = New DataTable
ds = New DataSet
ds.Tables.Add(dt)
adapter = New OleDbDataAdapter("Select * FROM product WHERE lab_kod='66'", con)
adapter.Fill(dt)
DataGridView1.DataSource = dt.DefaultView
labelID.Text = getAutoID()
lblLabCode.Text = "66"
cboProduct.Select()
Dim v_SQL As String = "SELECT * FROM kategori_product"
cmd = New OleDbCommand(v_SQL, con)
con.Open()
Dim v_dataReader As OleDbDataReader = cmd.ExecuteReader()
Dim v_dataTable As New DataTable
v_dataTable.Columns.Add("product_kod", Type.GetType("System.String"))
If v_dataReader.HasRows Then
While v_dataReader.Read
v_dataTable.Rows.Add(v_dataReader.GetString(0))
End While
cboProduct.DataSource = v_dataTable
End If
cboProduct.DisplayMember = "product_kod"
cboProduct.ValueMember = "product_kod"
v_dataReader.Close()
con.Close()
End Sub
'getAutoID()'做了什么?它是否使用相同的全局连接?它用于自动编号的 – Crowcoder
。所以用户不需要将号码放入ID标签。对。使用相同的全局连接.. –
然后我怀疑这是打开连接。如果是,请在退出'getAutoID'之前关闭它。 – Crowcoder