[quote pid='105366' dateline='1504891331']
كود :
Function GetlstRcno(ByVal Names, ByVal OrderByfild) As Integer
GetlstRcno = 0
Dim STR = " select * from " & Names & " Order by " & OrderByfild
Dim Da As New SqlClient.SqlDataAdapter(STR, CON)
Dim Ds = New DataSet
Da.Fill(Ds)
Dim DT As DataTable
DT = Ds.Tables(0)
If DT.Rows.Count <> 0 Then
Dim i = DT.Rows.Count - 1
GetlstRcno = Val(DT.Rows(i).Item(OrderByfild))
End If
End Function
[/quote]
هاذي الفانكشن مهمتها تجلب أخر رقم من عمود ID ونوع التايب INT الترقيم التلقائي وتزيد عليه 1
وتضع الرقم في التكست والكود الأسفل مهمته يظهره في التكست بكس
كود :
txt_Num_Recorde.Text = Format(GetlstRcno("TBL_EMP", "ID") + 1, "BA00000")
عملت أجراء مخزن وظيفته يرجع لي أخر سنه تساوي السنه اللي بالفورم
كود :
create proc [dbo].[selecYers]
@yesrs int
as
select * from TBL_EMP
where Yers =@yesrs
وهذه فانكشن في الفورم
الخاصه بالأجراء تقرأ السنه
كود :
Function statues(yesrs As Integer) As Boolean
CMD = New SqlCommand("selecYers", con)
CMD.CommandType = CommandType.StoredProcedure
Dim pram As New SqlParameter
pram = New SqlParameter("@yesrs", SqlDbType.Int)
pram.Value = yesrs
CMD.Parameters.Add(pram)
da = New SqlDataAdapter(CMD)
dt = New DataTable : dt.Clear()
da.Fill(dt)
If dt.Rows.Count > 0 Then
Return True
Else
Return False
End If
End Function
هنـا تعبئأه الفانكشن ومكان الأختبار هو تكست بكس 1
هنا يوضع الشرط ولكن كيف يوضع الشرط
أحس المشكله في الداتا تايب للعمود id يكون نصي
كود :
If statues(TextBox1.Text) = True Then
' في حالة أن السنه طابقة السنه يظيف إلى السجل السابق
Else
' في حالة أن السنه لم تتطابق السنه معناته سنه جديده ولابد من البدء من 1
End If
يالله يا جماعه شاركونا الحل الرائع والأسهل والأفضل برمجياً
يمكن فيه حل أجراء مخزن يختصر كل السطور هاذي ...؟؟؟!!!