store
이라는 SQL Server 테이블이 3 열 IDS, Item_Name, Qunt
인 테이블이 있습니다. 업데이트 문에 의해 값을 저장하는 옵션이있는 VB가 있습니다.updateQuery 그런 다음 값이 0보다 작아 지는지 확인하십시오.
내 코드는 다음과 같습니다
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
그것은 잘 작동하지만, 확실히이없는 전문 물건, 업데이트 문은 다음 테이블을 기억하고 Qunt 값이 덜 0보다 될 경우 검사 실행 내 코드의 아이디어 끌어 오기 값을 거부하는 메시지가 나타나면 테이블에 값을 추가하십시오. 다른 방법으로이 작업을 수행 할 생각이 있습니까? 감사
일반적으로 저장 프로 시저 내에서 가장 잘 처리됩니다. – Steve
몇 가지 개선점이 있다고 생각합니다. 당신은 데이터 세트로 데이터를 다운로드 한 다음 데이터 세트를 보지 않고 데이터 아랫쪽에서 데이터를 꺼내기 시작합니다. 또한, 내가 뭔가를 증분의 논리를 이해하고 있는지 확인하지 못하고, 0보다 작 으면 다시 검사하고, 그렇지 않으면 다시 증가 시키는가? 왜 0을 지나치게 늘리면 충분하지 않습니까? (-5이 있고 3을 더한 다음 확인하고 다시 3을 더하십시오. 처음에 6을 추가해야합니다!) –
귀하의 빠른 회신 해 주셔서 감사합니다,하지만 어쩌면 거기 임시 또는 뭔가를 업데이 트 문을 실행하고 확인하고 값을 확인하고 진정한 경우 코드를 완료하고 프로세스를 중지하고 원래 테이블에 아무 것도하지 말아요 – TOFAYAS