Hallo
zu nachfolgendem Code habe ich folgendes Problem
Ich habe eine Nummer in der Anwendungsdatei hinterlegt diese sollte nach jeder INSERT INTO Anweisung automatisch mit in die Datenbank wandern in die Spalte ArtNr und anschliessend soll diese Nummer in der Anwendungsdatei um 1 hochgezählt werden, funktioniert bis hierher auch alles super, aber nur wenn es sich um ein Datensatz handelt der von SELECT gefunden wurde dann ist für diesen Aufruf die Nr. z.B. 500, beim nächsten aufruf 501 usw. sind es jetzt aber zwei oder mehr Datensätze dann haben alle datensätze in diesem Aufruf die Nummer 500, beim nächsten Aufruf haben dann alle 501. Wie kann ich das Problem lösen?
zu nachfolgendem Code habe ich folgendes Problem
Ich habe eine Nummer in der Anwendungsdatei hinterlegt diese sollte nach jeder INSERT INTO Anweisung automatisch mit in die Datenbank wandern in die Spalte ArtNr und anschliessend soll diese Nummer in der Anwendungsdatei um 1 hochgezählt werden, funktioniert bis hierher auch alles super, aber nur wenn es sich um ein Datensatz handelt der von SELECT gefunden wurde dann ist für diesen Aufruf die Nr. z.B. 500, beim nächsten aufruf 501 usw. sind es jetzt aber zwei oder mehr Datensätze dann haben alle datensätze in diesem Aufruf die Nummer 500, beim nächsten Aufruf haben dann alle 501. Wie kann ich das Problem lösen?
Quellcode
- Imports System.Data.SqlClient
- Public Class Form1
- Private connserver As String = My.Settings.connserver
- Private connclient As String = My.Settings.connclient
- Private sql1 As String = "SELECT * FROM cArtikel WHERE (erstellt = 'True')"
- Private sql2 As String = "UPDATE cArtikel SET erstellt = 'False'"
- Private sql3 As String = "INSERT INTO sArtikel(Artikel, Beschreibung, ArtNr) VALUES (@p2, @p3, @p4)"
- Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
- Dim conn1 As New SqlConnection(connclient & ";MultipleActiveResultSets=True")
- Dim conn2 As New SqlConnection(connserver & ";MultipleActiveResultSets=True")
- conn1.Open()
- conn2.Open()
- Dim cmd1 As New SqlCommand(sql1, conn1)
- Dim cmd2 As New SqlCommand(sql3, conn2)
- Dim cmd3 As New SqlCommand(sql2, conn1)
- cmd2.Parameters.Add("@p2", SqlDbType.VarChar)
- cmd2.Parameters.Add("@p3", SqlDbType.Text)
- Dim p4 As New SqlParameter("@p4", SqlDbType.VarChar)
- p4.Value = (My.Settings.Artikelnummer)
- My.Settings.Artikelnummer = My.Settings.Artikelnummer + 1
- cmd2.Parameters.Add(p4)
- Using reader As SqlDataReader = cmd1.ExecuteReader()
- While reader.Read()
- cmd2.Parameters("@p2").Value = reader("Artikel")
- cmd2.Parameters("@p3").Value = reader("Beschreibung")
- My.Settings.Artikelnummer = My.Settings.Artikelnummer + 1
- cmd2.ExecuteNonQuery()
- cmd3.ExecuteNonQuery()
- End While
- End Using
- conn1.Close()
- conn2.Close()
- End Sub