السلام عليكم ورحمة الله وبركاته
اخي سلام
هذا فنكشن يجلب قيمة الماكس ثم يضيف 1
كود :
'-------------Function MaxID------------
Public function MaxID_Personal() as integer
Dim Maxid = (from P in DBcontext.Personals select P.Cv_Id).Max()
if Maxid = 0 Then
return Maxid = 1
Else
return Maxid + 1
End if
End Function
وفي بوتون جديد ننادي عليه بحيث يضع القيمة العائدة في مربع الايدي
كود :
Txt_Cv_Id.Text = MaxId().ToString()
يبقى امر تعرفه وهو تغيير الاسماء للجدول والداتابيس ومربع نص اي دي
شكرا اخ ابراهيم
سارفق لك المشروع ارجو تعديله و تجربته لقد حاولت و لم اعرف المشروع عباره عن 2 فورم
فورم للعرض و فورم للاضافه[attachment=26235][attachment=26235]
السلام عليكم ورحمة الله وبركاته
اخي سلام
ضع هذا الفنكشن في فورم اضافة بنك ببدل الذي وضعته
كود :
'-------------Function MaxID------------
Public Function MaxID() As Integer
Dim g As New sDataContext
Dim b As New bank
Dim Maxi = (From P In g.banks Select P.bank_id).Max()
If Maxi = 0 Then
Return Maxi = 1
Else
Return Maxi + 1
End If
End Function
واستبدل كود صب نيو بنك بالتالي
كود :
Public Sub newbank_id()
TxtBank_id.Text = MaxID().ToString()
TxtBank_name.Text = ""
TxtBank_address.Text = ""
Txtbank_swiftcode.Text = ""
TxtBank_phone.Text = ""
TxtBank_fax.Text = ""
TxtBank_email.Text = ""
TxtBank_webpage.Text = ""
TxtBank_note.Text = ""
CmbBank_user_id.Text = ""
DtpBank_date.Value = Now.Date
TxtBank_name.Select() 'ليضع مؤشر على التكستبوكس
End Sub
وفي بوتون اضافة في الفورم الرئيسية نكتب هكذا
كود :
Dim frmbank_add_v As New Frmbank_add
frmbank_add_v.newbank_id()
frmbank_add_v.ShowDialog()
ثم اجعل الاقلاع للمشروع من القورم الرئيسية
شكراااااااااااااااااا اخ ابراهيم يعمل بشكل جيد عند الاضافه
اما عند نقر زر حذف اول مره يعمل طبيعى اما عند
تكرار الحذف اى حذف سجل ثانى
ثم النقر عل زر اعاده تحميل الذى فى الفورم الاساس فى التولبار
يعطى error كما فى الصوره
سارفق لك المشروع ارجو تعديله و تجربته لقد حاولت و لم اعرف
اضفت فورم للتعديل تاخذالبيانات المطلوب تعديلها من الفورم الاساس من الكنتولز المحاط بمستطيل اخضر فى الصوره السابقه و ضيفت الاسطر كم فى الصوره و لم تعمل

[
attachment=26241]
شكراااااااااااااااااا اخ ابراهيم يعمل بشكل جيد
لاحظت عند ضغط زر نيو و الداتاجريدفيو فارغ يعطى
فهل اكتب سطر معناه اذا كان عدد الصفوف = 0 يكون الزر enabled=false ام لها حل افضل
كيف اكتب كود معناه (اذا كان عدد الصفوف = 0)
_______________________________________________________________________________________________________________________________
استفسار آخر
يوجد اكثر من فورم كتبت فى class1 كود لتنسيق الفورم
كود :
Public Class Class1
Public Sub FormatingOfForms()
Frm_accounts.FormBorderStyle = FormBorderStyle.FixedToolWindow
Frm_accounts.RightToLeft = RightToLeft.Yes
Frm_accounts.StartPosition = FormStartPosition.CenterScreen
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Frmbank.FormBorderStyle = FormBorderStyle.FixedToolWindow
Frmbank.RightToLeft = RightToLeft.Yes
Frmbank.StartPosition = FormStartPosition.CenterScreen
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
End Sub
End Class
و فى اجراء frmbank_load استدعيته
كود :
Public Class Frmbank
Private Sub Frmbank_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
FormatingOfForms()
End Sub
End Class
يضع خط ازرق تحت
FormatingOfForms()
________________________________________________________________________________________________________________________________________
استفسار ثالث
لماذا لم تستخدم التالى للحصول على max
كود :
Dim getdata As New db_accountDataContext
Dim b = From cors In getdata.banks Select cors
Dim maxid = Aggregate newid In getdata.banks Into Max(newid.bank_id)
و استخدمت بدلها function
كود :
'-------------Function MaxID------------
Public Function MaxID_bank() As Integer
Dim Maxid = (From B In DBcontext.banks Select B.bank_id).Max()
If Maxid = 0 Then
'Cleardata_bank()
Return Maxid = 1
Else
Return Maxid + 1
End If
End Function
اسف على الاطاله
السلام عليكم ورحمة الله وبركاته
اخي سلام
بالنسبة لفنكشن الماكس معك حق حبث لم انتبه الى الفيمة (null)في حال كان الجدول فارغ
استبدل الفنكشن القديم بالتالي
كود :
'-------------Function MaxID------------
Public Function MaxID_bank() As Integer
Dim Count = (From B In DBcontext.banks Select B).Count() ' جلب عدد السجلات
Dim Maxid As Integer
If Count > 0 Then
Maxid = (From B In DBcontext.banks Select B.bank_id).Max()
Return Maxid + 1
Else
Maxid = 1
Return Maxid
End If
End Function
اما بالنسبة لـ الكلاس الذي يحتوي على صب لتنسيق الفورم
يكفي كتابة تنسيق لفورم افتراضي مع باراميتر اسم الفورم وعند الاستدعاء نكتب (Me) للدلالة على الفورم الحالي ولانكتب اسم الفورم
اما لماذا وضع حط الخطأ فلانك لم تعرف اوبجكت من الكلاس فلم يتم التعرف اليه
في الكلاس اكتب هذا الصب
كود :
Public Sub FormatingOfForms(Frm As Form)
Frm.FormBorderStyle = FormBorderStyle.FixedToolWindow
Frm.RightToLeft = RightToLeft.Yes
Frm.StartPosition = FormStartPosition.CenterScreen
End Sub
وفي كود الفورم بالاعلى عرف نسخة من الكلاس هكذا
كود :
Dim Cls As New Class1()
,وعند مناداة الصب من الكلاس في حذث تحميل الفورم نكتب التالي
كود :
Cls.FormatingOfForms(Me)
اما لماذا لم استخدم الكود الذي ذكرت فهذا امر يعود الى طريقتي ومعرفتي بالكود
اتمنى ان اكون قد افدتك .... دمت بخير
شكرا اخى ابراهيم
زر الحذف يعمل
حدث مشكله كما فى الصوره ما الحل
إقتباس :اما لماذا لم استخدم الكود الذي ذكرت فهذا امر يعود الى طريقتي ومعرفتي بالكود
اتمنى ان اكون قد افدتك .... دمت بخير
linq له طريقتان فى كتابه الكود طريقه quary syntax و طريقه non quary syntax
ايهم طريقتك