Hallo,
ich habe mich eben angemeldet und habe folgendes Projekt und ein Problem dazu:
Ich programmiere eine Kassensoftware für unser Azubi-projekt. Ich drucke Preisschilder aus mit entsprechenden Barcodes und kann die auch abscannen. Im Hintergrund läuft eine MariaDB auf einem Linux-Server. Quasi unser digitales Lager. Nun habe ich folgendes Problem, ich möchte neue Artikel in die Datenbank aufnehmen indem ich Barcodes abscanne. Ich speichere wiefolgt in der DB:
+------------+---------------+------+-------+
| id_produkt | menge_produkt | wg | preis |
+------------+---------------+------+-------+
| 0 | 1 | 0 | 0.00 |
| 1 | 22 | 170 | 2.00 |
| 2 | 2 | 4 | 5.00 |
| 3 | 4 | 3 | 0.20 |
+------------+---------------+------+-------+
sorry für die blöde formatierung der db
immer wenn eine neue Kombination aus wg eingelesen wird, wird ein neuer eintrag mit neuer id erstellt. Ansonsten wird nur die Menge erhöht.
im Code sieht das folgendermaßen aus:
Nun mein Problem, immer wenn eine neue id erstellt werden soll, funktioniert es nur, wenn ich im Debug-Modus bin.
Warum ist das so? Ich fange an solangsam zu verzweifeln.
Vielen Dank schonmal für eure Hilfe
Gruß DenSe
ich habe mich eben angemeldet und habe folgendes Projekt und ein Problem dazu:
Ich programmiere eine Kassensoftware für unser Azubi-projekt. Ich drucke Preisschilder aus mit entsprechenden Barcodes und kann die auch abscannen. Im Hintergrund läuft eine MariaDB auf einem Linux-Server. Quasi unser digitales Lager. Nun habe ich folgendes Problem, ich möchte neue Artikel in die Datenbank aufnehmen indem ich Barcodes abscanne. Ich speichere wiefolgt in der DB:
+------------+---------------+------+-------+
| id_produkt | menge_produkt | wg | preis |
+------------+---------------+------+-------+
| 0 | 1 | 0 | 0.00 |
| 1 | 22 | 170 | 2.00 |
| 2 | 2 | 4 | 5.00 |
| 3 | 4 | 3 | 0.20 |
+------------+---------------+------+-------+
sorry für die blöde formatierung der db
immer wenn eine neue Kombination aus wg eingelesen wird, wird ein neuer eintrag mit neuer id erstellt. Ansonsten wird nur die Menge erhöht.
im Code sieht das folgendermaßen aus:
VB.NET-Quellcode
- Try
- If dummy = True Then 'dummy-Variable speichert einen Boolschen-Wert, der später abgefragt werden kann
- Read_DB("select id_produkt, menge_produkt from produkt where preis = " & preisformat & " and wg = " & wg) 'SQL-Lese-Befehl
- While myreader.Read() 'Während in der Datenbank gelesen wird
- id_produkt = myreader.GetDouble(0) 'id_produkt wird auf den Wert gesetzt, der ausgelesen wird
- menge_produkt = myreader.GetDouble(1) 'menge_produkt wird auf den Wert gesetzt, der ausgelesen wird
- End While
- myreader.Close() 'Verbindung zum Lese-Befehl wird geschlossen
- mycommand = New MySql.Data.MySqlClient.MySqlCommand("update produkt set menge_produkt = " & menge_produkt + 1 & " where id_produkt = " & id_produkt) 'Schreib_Befehl wird erfasst
- mycommand.Connection = connection 'Der Ort wo der Schreib-Befehl angewendet werden soll wird bestimmt
- mycommand.ExecuteNonQuery() 'Schreib-Befehl wird ausgeführt
- 'MsgBox("Anzahl erhöht!")
- Else
- Read_DB("select MAX(id_produkt) from produkt")
- While myreader.Read()
- If myreader.HasRows = True Then
- id_produkt = myreader.GetDouble(0) + 1
- Else
- id_produkt = 1
- End If
- End While
- myreader.Close()
- mycommand = New MySql.Data.MySqlClient.MySqlCommand("insert into produkt (id_produkt, menge_produkt, wg, preis) values(" & id_produkt & ",1," & wg & "," & preisformat & ")")
- mycommand.Connection = connection
- mycommand.ExecuteNonQuery()
- 'MsgBox("Neuer Eintrag erstellt!")
- End If
- Catch ex As Exception
- MsgBox("Datenbank konnte nicht gelesen werden!", MsgBoxStyle.Information, "JUFI - INFO")
- End Try
Nun mein Problem, immer wenn eine neue id erstellt werden soll, funktioniert es nur, wenn ich im Debug-Modus bin.
Warum ist das so? Ich fange an solangsam zu verzweifeln.
Vielen Dank schonmal für eure Hilfe
Gruß DenSe