[英]Insert Array of values from Select query mysql vb.net
我有一個顯示特定參考的轉換目標的應用程序。 我將很多參考分為3個班次(上午,下午,晚上),該應用程序運行良好,但現在我想在每個班次開始時為所有參考重新設置班次目標的計數器。 我的意思是,當時鍾是上午6點時,所有早上的班次都應將計數器設置為0。我有以下代碼,但無法正常工作。 缺少某些東西,我被卡住了。
Dim rtime As New TimeSpan(0, 0, CInt(requestddate.TimeOfDay.TotalSeconds))
hora1 = New TimeSpan(6, 0, 0)
hora2 = New TimeSpan(14, 0, 0)
hora3 = New TimeSpan(22, 0, 0)
ConnectDatabase()
If rtime = hora1 Then
count = 0
Try
With cmd4
.Connection = conn
.CommandText = "Select ShiftTarget.IDShiftTarget from ShiftTarget, turnos, linhas WHERE ShiftTarget.IDLinha = linhas.IDLinha and ShiftTarget.IDTurno = turnos.IDTurno And turnos.Descricao = 'Manha' And linhas.NomeLinha = '" & GlobalVariables.linha & "'"
End With
While objReader.Read()
listaIDs.Add(objReader("IDShiftTarget").ToString())
End While
objReader.Close()
DisconnectDatabase()
ConnectDatabase()
With cmd1
.Connection = conn
.CommandText = "INSERT into contador (IDShiftTarget, Data, Contador) VALUES (@ID, @date, @cont)"
For Each item As String In listaIDs
MsgBox(item)
.Parameters.AddWithValue("@ID", item)
.Parameters.AddWithValue("@date", data.ToString("yyyy-MM-dd"))
.Parameters.AddWithValue("@cont", count)
.ExecuteNonQuery()
Next
End With
Catch ex As Exception
If ex.InnerException IsNot Nothing Then
MsgBox(ex.InnerException)
End If
End Try
DisconnectDatabase()
有人可以告訴我我在做什么錯嗎?
因此,想象一下,當實際時間是上午6點時,我想插入類似以下內容:
IDContador IDShiftTarget Data Contador
11933 32 2016-02-23 0
11934 19 2016-02-23 0
11935 20 2016-02-23 0
11936 35 2016-02-23 0
我不能簡單地重置為0,其中idshifttarget等於19、20、32、35,因為那樣會重置所有記錄,並且我想將它們保留在表中。 我需要檢查MAX(ID),其中shiftTarget是我在數組中獲得的值,然后將Contador設置為0。
更新:
我已經在代碼中進行了更改:
While objReader.Read()
listaIDs.Add(objReader("IDShiftTarget").ToString())
End While
objReader.Close()
DisconnectDatabase()
ConnectDatabase()
With cmd1
.Connection = conn
.CommandText = "INSERT into contador (IDShiftTarget, Data, Contador) VALUES (@ID, @date, @cont)"
For Each item As String In listaIDs
MsgBox(item)
.Parameters.AddWithValue("@ID", item)
.Parameters.AddWithValue("@date", data.ToString("yyyy-MM-dd"))
.Parameters.AddWithValue("@cont", count)
.ExecuteNonQuery()
Next
End With
Catch ex As Exception
If ex.InnerException IsNot Nothing Then
MsgBox(ex.InnerException)
End If
End Try
DisconnectDatabase()
使用此代碼,我只能看到第一個ID,在控制台中,我會收到下一個錯誤:拋出異常:MySql.Data.dll中的'System.InvalidOperationException'
您的代碼中有些東西會導致錯誤的行為:
IDShiftTargets
,關閉DataReader,然后在列表中循環並執行Insert語句。 AddWithValue
一次,並在循環中使用Parameter("@ID").Value = item
Timer.Enabled= False
,在函數完成后設置Timer.Enabled=True
。 或者只是將計時器刻度線設置得足夠高( d'oh )。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.