gpt4 book ai didi

php - mysqlexception 未处理 - 已经有一个与此连接关联的打开的 DataReader,必须先将其关闭

转载 作者:行者123 更新时间:2023-11-30 00:53:02 25 4
gpt4 key购买 nike

所以我尝试使用该表单来更新 xampp 上的数据库。但是,当我尝试更新时,我在这部分的标题中收到错误:reader = objcommand.ExecuteReader()非常感谢所有帮助。

代码如下:

    Imports MySql.Data
Imports MySql.Data.MySqlClient
Imports System.Drawing.Printing
Imports System
Imports System.Windows.Forms

Public Class frmClientDetails
Dim form_type As Form
Dim user_table As String
Dim objconnection As New MySqlConnection("Server=localhost;database=ba-solutions;user id=root;password=")
Dim sqlstring As String

Private Sub frmClientDetails_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
DGVClient.Columns.Clear()
Dim dt As New DataTable
objdataadapter.SelectCommand = New MySqlCommand()
objdataadapter.SelectCommand.Connection = objconnection
objdataadapter.SelectCommand.CommandType = CommandType.Text
objdataadapter.SelectCommand.CommandText = "SELECT * FROM Client_Details"
objdataadapter.Fill(dt)


rowposition = 0

DGVClient.DataSource = dt

End Sub
Private Sub btnBack_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBack.Click
frmMainMenu.Show()
Me.Hide()
End Sub

Private Sub btnClearAll_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClearAll.Click
txtCompanyName.Clear()
cbxCompanyType.Items.Clear()
txtVAT.Clear()
txtPAYE.Clear()
txtAddressLine.Clear()
txtCity.Clear()
txtPostcode.Clear()
txtEmail.Clear()
txtPhoneNumber.Clear()
End Sub


Private Sub btnSubmit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSubmit.Click


If Len(txtCompanyName.Text) < 1 Then
MsgBox("Enter a Company Name")
Return
End If

If Len(cbxCompanyType.Text) < 1 Then
MsgBox("Enter a Company Type")
Return
End If

If Len(txtVAT.Text) <> 9 Then
MsgBox("The VAT Registration Number must be 9 numbers")
Return
End If

If Len(txtPAYE.Text) <> 8 Then
MsgBox("The PAYE and Tax Reference must be 8 characters")
Return
End If

If Len(txtAddressLine.Text) < 1 Then
MsgBox("Enter a First Line of Address")
Return
End If

If Len(txtCity.Text) < 1 Then
MsgBox("Enter a City Name")
Return
End If

If Len(txtPostcode.Text) < 1 Then
MsgBox("Enter a Postcode")
Return
End If

If Len(txtEmail.Text) < 1 Then
MsgBox("Enter an Email Address")
Return
End If

If Len(txtPhoneNumber.Text) <> 11 Then
MsgBox("The Phone Number must be 11 numbers ")
Return
End If

Try
objconnection.Open()
Catch ex As Exception
MsgBox("Error connecting to database", MsgBoxStyle.Information, "Connection Failed")
End Try

sqlstring = "Select * FROM client_details"
Dim currentrecord As Integer = DGVClient.CurrentCellAddress.Y


objconnection.Close()
objconnection.Open()

sqlstring = "Insert into `Client_Details` (`CompanyName` , `CompanyType` , `VATRegistrationNumber , `PAYEandTaxReference` , `AddressLine1` , `City` , `Postcode` , `Email` , `PhoneNumber') Values ('" &
txtCompanyName.Text & "','" & cbxCompanyType.Text & "' , '" & txtVAT.Text & "','" & txtPAYE.Text & "' , '" & txtAddressLine.Text & "' , '" & txtCity.Text & "' , '" & txtPostcode.Text & "' , '" &
txtEmail.Text & "' , '" & txtPhoneNumber.Text & "')"
MsgBox("updated")
objcommand.CommandText = sqlstring

reader = objcommand.ExecuteReader()
MsgBox("update")

End Sub

Public Sub count_records()
Dim reccount As Integer
reccount = DGVClient.Rows.Count = 1

End Sub

End Class

所以基本上我正在填写表单上的文本框,一旦我点击提交,它应该使用新记录更新数据库。

最佳答案

切换到使用Parameterized Queries 。那会帮助你的。参数的数量将按顺序与表中的列数匹配。根据需要创建 ADO 对象,并在 Sub 例程结束时关闭它们。

Insert Into [table name] Values(n1, n2, etc...)

SQL Tutorial

关于php - mysqlexception 未处理 - 已经有一个与此连接关联的打开的 DataReader,必须先将其关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20808540/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com