كود :
Imports System.Data.OleDb
Public Class F1
Private Sub F1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
DataGridView1.AutoGenerateColumns = False
TextBox5.ReadOnly = True
fill_namesGrid()
TextBox1.Select()
End Sub
Dim row As DataRow
Private Sub TextBox1_TextChanged(sender As System.Object, e As System.EventArgs) Handles TextBox1.TextChanged
Dim no_itm As Integer = Val(sender.Text)
Dim myDA As New OleDbDataAdapter("SELECT * FROM [itm] WHERE [no_itm]=" & no_itm, db)
Dim myDataTable As New DataTable()
row = Nothing
If myDA.Fill(myDataTable) > 0 Then
row = myDataTable.Rows(0)
TextBox3.Text = row("na_itm")
TextBox2.Text = row("sell_itm")
TextBox3.Enabled = False
TextBox2.Enabled = False
Else
TextBox3.Clear()
TextBox2.Clear()
TextBox4.Clear()
TextBox3.Enabled = True
TextBox2.Enabled = True
End If
End Sub
Private Sub TextBox2_TextBox4_TextChanged(sender As System.Object, e As System.EventArgs) Handles TextBox2.TextChanged, TextBox4.TextChanged
TextBox5.Text = Val(TextBox4.Text) * Val(TextBox2.Text)
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
If Not IsNumeric(TextBox1.Text) AndAlso Val(TextBox1.Text) <= 0 Then
MsgBox("الرجاء ادخال رقم الصنف")
TextBox1.Select()
Exit Sub
End If
If TextBox3.Text.Trim = "" Then
MsgBox("الرجاء ادخال اسم الصنف")
TextBox3.Select()
Exit Sub
End If
If Not IsNumeric(TextBox2.Text) AndAlso Val(TextBox2.Text) <= 0 Then
MsgBox("الرجاء ادخال سعر البيع")
TextBox2.Select()
Exit Sub
End If
If Not IsNumeric(TextBox4.Text) AndAlso Val(TextBox4.Text) <= 0 Then
MsgBox("الرجاء ادخال عدد الوحدات")
TextBox4.Select()
Exit Sub
End If
Try
If db.State <> ConnectionState.Open Then db.Open()
If IsNothing(row) Then
Dim sql As String = "INSERT INTO [itm] ([no_itm], [na_itm], [sell_itm], [units_itm], [Total_itm]) VALUES(@no_itm, @na_itm, @sell_itm, @units_itm, @Total_itm)"
Dim sw As New OleDbCommand(sql, db)
sw.Parameters.AddWithValue("@no_itm", TextBox1.Text)
sw.Parameters.AddWithValue("@na_itm", TextBox3.Text)
sw.Parameters.AddWithValue("@sell_itm", TextBox2.Text)
sw.Parameters.AddWithValue("@units_itm", TextBox4.Text)
sw.Parameters.AddWithValue("@Total_itm", TextBox5.Text)
sw.ExecuteNonQuery()
Else
Dim sql As String = "UPDATE [itm] SET [units_itm] = [units_itm] + @units_itm, [Total_itm] = @Total_itm WHERE [no_itm]=@no_itm"
Dim sw As New OleDbCommand(sql, db)
sw.Parameters.AddWithValue("@units_itm", TextBox4.Text)
sw.Parameters.AddWithValue("@Total_itm", row("Total_itm") + TextBox5.Text)
sw.Parameters.AddWithValue("@no_itm", TextBox1.Text)
sw.ExecuteNonQuery()
End If
TextBox1.Clear()
TextBox3.Clear()
TextBox2.Clear()
TextBox4.Clear()
TextBox1.Select()
fill_namesGrid()
MsgBox("تم تسجيل بيانات الصنف")
Catch
MsgBox("عذراً... هناك خطأ ما ")
Finally
db.Close()
End Try
End Sub
Sub fill_namesGrid()
Dim myDA As New OleDbDataAdapter("SELECT * FROM [itm]", db)
Dim myDataTable As New DataTable()
myDA.Fill(myDataTable)
DataGridView1.AutoGenerateColumns = False
DataGridView1.DataSource = myDataTable
End Sub
End Class