У меня есть головоломка.Программа отправляет данные, но база данных не получает ее
В моей программе VB.net в нескольких местах я общаюсь с моей базой данных SQLserver. Я использую операторы Insert, Update и Select. Моя программа состоит из нескольких форм, и моя база данных имеет 4 таблицы.
Все, кроме одного из моих подсайтов, работают, и, несмотря на использование точек останова и прохождение кода, я не могу понять, почему.
Обрабатываемые формы и таблицы базы данных отлично работают, когда операторы select и Insert полностью функционируют, однако код инструкции обновления не является. Когда я прохожу через него, он ведет себя так, как будто он отправил данные в базу данных, однако база данных никогда не получает ее. Данные подключения идентичны работающим субмаринам, а код в том же формате, что и мой код обновления, в других формах моей программы. Поэтому я не понимаю, почему он не работает.
Вот код:
Public selectedDeviceNumber As String = ""
Public selectedDeviceRowNumber As Integer = 0
'================================
'= Set up the DATASETS! =
'================================
Dim PCBconnectionstring As String = "Data Source=ServerName;Initial Catalog=Databasename;User Id=UserId;Password=password;Connect Timeout=30;User INstance=False"
Dim PCBsqlconnection As New SqlClient.SqlConnection(PCBconnectionstring)
Dim damyPCB As New SqlDataAdapter
Dim dsmyPCB As New DataSet
Dim ALcon As New SqlConnection
Dim ALcmd As New SqlCommand
Dim PCBcmd As New SqlCommand
Dim PCBcon As New SqlConnection
'================================
'= SAVE the data! =
'================================
Dim test As String = Me.selectedDeviceNumber
Private Sub SaveToDataBaseFunctionPCB()
'update the data entered to the database
Try
PCBsqlconnection.ConnectionString = "Data Source=ITWIN10-PC\SQL2010;Initial Catalog=SLE1000;User Id=UserId;Password=password;Connect Timeout=30;User Instance=False"
PCBsqlconnection.Open()
PCBcmd.Connection = PCBsqlconnection
PCBcmd.CommandText = "UPDATE PCBlist SET [email protected],[email protected],[email protected],[email protected]," & _
"[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected]," & _
"[email protected],[email protected],[email protected],[email protected] WHERE [email protected] "
PCBcmd.Parameters.AddWithValue("@pcbSerial", txtSerialPCB1.Text)
PCBcmd.Parameters.AddWithValue("@pcbPart", cboPartPCB1.Text)
PCBcmd.Parameters.AddWithValue("@pcbVent", txtVentPCB1.Text)
PCBcmd.Parameters.AddWithValue("@pcbDesc", txtDescriptPCB1.Text)
PCBcmd.Parameters.AddWithValue("@pcbTested", chkTested1.Checked)
PCBcmd.Parameters.AddWithValue("@pcbU1", txtU11.Text)
PCBcmd.Parameters.AddWithValue("@pcbU5", txtU51.Text)
PCBcmd.Parameters.AddWithValue("@pcbU7", txtU71.Text)
PCBcmd.Parameters.AddWithValue("@pcbU10", txtU101.Text)
PCBcmd.Parameters.AddWithValue("@pcbU11", txtU111.Text)
PCBcmd.Parameters.AddWithValue("@pcbVersion", txtVersionPCB1.Text)
PCBcmd.Parameters.AddWithValue("@pcbTestIni", txtTestPCB1.Text)
PCBcmd.Parameters.AddWithValue("@pcbApplyIni", txtApplyPCB1.Text)
PCBcmd.Parameters.AddWithValue("@pcbTestDate", txtTestDatePCB1.Text)
PCBcmd.Parameters.AddWithValue("@pcbApplyDate", txtApplyDatePCB1.Text)
PCBcmd.Parameters.AddWithValue("@pcbID", Me.selectedDeviceNumber)
PCBcmd.ExecuteNonQuery()
PCBcmd.Parameters.Clear()
PCBsqlconnection.Close()
MsgBox("Data updated")
Catch ex As Exception
MessageBox.Show(ex.Message)
Finally
PCBsqlconnection.Close()
End Try
End Sub
`Private Sub btnAmend_Click(sender As System.Object, e As System.EventArgs) Handles btnAmend.Click
'Save the data to SQL Server
SaveToDataBaseFunctionPCB()
'record activity in Activity Log
FrmSLE1000.txtActivityLogRecorder.Text = ("Data Saved")
'Save the Activity log data to SQL Server
SaveToDataBaseFunction1()
'SLE1000SqlConnection = New SqlConnection(frmConnections.lblDBConnection.Text & frmConnections.lblDBConnection2.Text)
End Sub
Если у вас есть какие-либо идеи, пожалуйста, дайте мне знать. Возможно, я слишком долго смотрел на код и его явное, но я не вижу проблемы.
Большое спасибо
Я отредактировал ваш вопрос и удалил то, что выглядело как ваш пароль из строки подключения. Пожалуйста, убедитесь, что вы не указали личные учетные данные при публикации на этом сайте. –
проверьте значение 'Me.selectedDeviceNumber' в' PCBcmd.Parameters.AddWithValue ("@ pcbID", Me.selectedDeviceNumber) '. – tezzo
Если вы используете MySQL, вы должны использовать официальный [коннектор] (https://dev.mysql.com/doc/connector-net/en/connector-net-programming-connecting-open.html) –