Ich habe eine SQL Server-Tabelle mit dem Namen store
mit 3 Spalten IDS, Item_Name, Qunt
. Ich habe vb mit Option, die von speichern einen Wert von Update-Anweisung nehmen.updateQuery dann überprüfen, ob der Wert kleiner als 0 wird
Mein Code ist:
Dim ADP = New SqlClient.SqlDataAdapter("update Store set Qunt = Qunt - @N_Qunt1 where [email protected]", connection)
ADP.SelectCommand.Parameters.AddWithValue("@CB1", ComboBox2.SelectedValue)
ADP.SelectCommand.Parameters.AddWithValue("@N_Qunt1", N_Qunt1.Text)
If connection.State = ConnectionState.Closed Then
connection.Open()
End If
ADP.SelectCommand.ExecuteNonQuery()
Collection.Close()
Dim ADP1 = New SqlClient.SqlDataAdapter("select * from store where [email protected]", connection)
ADP1.SelectCommand.Parameters.AddWithValue("@CB1", ComboBox2.SelectedValue)
Dim Ds = New DataSet
ADP1.Fill(Ds)
Dim Dt = Ds.Tables(0)
Dim dr = Dt.Rows(0)
If dr!Qunt < 0 Then
MsgBox(" الكمية المراد سحبها اكبر من المتواجده بالمخزن ", MsgBoxStyle.Information + MsgBoxStyle.OkOnly, "سحب")
Dim ADP2 = New SqlClient.SqlDataAdapter("update Store set Qunt = Qunt + @N_Qunt1 where [email protected]", connection)
ADP2.SelectCommand.Parameters.AddWithValue("@CB1", ComboBox2.SelectedValue)
ADP2.SelectCommand.Parameters.AddWithValue("@N_Qunt1", N_Qunt1.Text)
If connection.State = ConnectionState.Closed Then
connection.Open()
End If
ADP2.SelectCommand.ExecuteNonQuery()
connection.Close()
CLEAR_TEXTBOXES(Me)
Exit Sub
Else
MsgBox(" تمت سحب الكمية بنجاح ", MsgBoxStyle.Information + MsgBoxStyle.OkOnly, "سحب")
End If
Es funktioniert gut, aber auf jeden Fall, dass keine professionelle Sachen, die Idee von meinem Code, der die Update-Anweisung dann erinnern an die Tabelle ausführen und überprüfen, ob der Qunt Wert kleiner geworden ist als 0, um die Nachricht zeigen verweigern den Wert des Pull und dann wieder den Wert der Tabelle hinzufügen, irgendeine Idee, dies auf andere Weise zu tun? Dank
Normalerweise ist dies am besten in einer gespeicherten Prozedur behandelt – Steve
Einige Verbesserungen möglich dort denke ich; Sie laden Daten in ein Dataset herunter, und anstatt das Dataset zu betrachten, fangen Sie an, Daten aus dem Datenreader zu ziehen ?! auch, ich bin mir nicht sicher, ob ich die Logik verstanden habe, etwas zu inkrementieren, dann zu prüfen, ob es kleiner als 0 ist, und wenn es ist, es wieder inkrementieren? warum nicht einfach genug um es zu erhöhen, um es hinter 0 zu bekommen? (Wenn du -5 hast und 3 addierst, dann überprüfe, dann addiere noch 3 ... du hättest gerade 6 beim ersten Mal hinzufügen sollen!) –
danke für Ihre schnelle Antwort, ich weiß nicht, aber vielleicht gibt es Weg zu temporären oder etwas, die die update-Anweisung ausführen und wenn Bedingung und überprüfen Wert und wenn wahr den Code vervollständigen und wenn falsch die Prozesse stoppen und nichts zu ursprünglichen Tabelle – TOFAYAS