تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] استفسار لأفضل طريقة لتخزين رقم الفاتورة
#1
Bug 
اسلام عليكم إخواني

ماهي أفضل طريقة لتخزين رقم في قاعدة البيانات والنداء عليه في كل مرة
بمعنى فتح و غلق الجدول كل خمس تواني مثلا

الرقم الذي أريد تخزينه هو رقم الفاتورة
و هو رقم تسلسلي كما تعرفون أي يجب تخزينه و النداء عليه و إضافة +1 ثم تخزينه ....


إستعملت الطريقة العادية 
لكن إريد استشارتكم فقد تكون هده الطريقة متعبة لقاعدة البيانات أو تسبب تقل باليرنامج

شكرا لكم



الرد
تم الشكر بواسطة:
#2
جرب هذا الاستعلام :


كود :
Select IIF(Max(ID) Is NULL,1,Max(ID)+1) As ID From Test


يغنيك عن الجملة الشرطية :


كود :
Dim StrSQL as String= "Select IIF(Max(ID) Is NULL,1,Max(ID)+1) As ID From Test"
Dim da As New SqlDataAdapter(StrSQL, cn)
Dim dt As New DataTable
da.Fill(dt)
Txt_Id.Text=dt.Rows(0)(0).ToString()
أما بالنسبة لطريقة الحفظ هناك عدة طرق الطرقة الاولى التي وضعتها في كودك و الثانية عن طريق الاستعلام مثل Insert أو Update
حسب ما تريد بالنسبة لي أفضل طرقة الاستعلام و إغلاق الاتصال مع كل استعلام .
الرد
تم الشكر بواسطة: عبد العزيز البسكري , sniperjawadino
#3
انا ارى ان افضل طريقة لتخزين رقم الفاتورة هي عن طريق تخزين قيمة التاريخ و الوقت فتاريخ اليوم لن يتكرر ابدا مثلا : تاريخ اليوم هو 10/01/2019 قم بحذف "/" ليصبح 10012019 وأضف له الوقت بنفس الطريقة
لقد ارفقت لك مثال اتمنى ان يفيدك
الرد
تم الشكر بواسطة: عبد العزيز البسكري , sniperjawadino
#4
بالنسبة لرقم الفاتورة فجميعنا يعلم ان كل تاجر يملك دفتر فواتير ورقية له ارقام محددة غير مكرر يبدأ برقم و ينتهي برقم و هكذا لذالك تعلم ان تضع خانة في خصائص الفواتير اسمها رقم الدفتر و من ثم تزيد عليه واحد و هكذا ..
الرد
تم الشكر بواسطة: sniperjawadino
#5
ممكن تستخدم الطريقة التالية عبارة عن جلب اكبر رقم ثم اضف اليه 1

لو الجدول فارغ يعنى القيمة 0   الكود هيضيف 1 

PHP كود :
   Public Function max_Sales_numb()
 
       '  جلب اكبر رقم 
        Dim id As New Integer
        Try
            Dim cmd As New OleDbCommand("select max(sales_numb) from tbl_sales", con)
            con.Open()
            id = cmd.ExecuteScalar
        Catch ex As Exception
            id = 0
        End Try
        con.Close()
        Return id
    End Function 


عند الاستدعاء ضع الكود التالي
PHP كود :
txt_invsal_nub.Text max_Sales_numb() + '  جلب اكبر رقم 
الرد
#6
السّلام عليكم و رحمة الله و بركاته
مشاركة للإخوة الأكارم بارك الله فيهم ..
من رأيي يتم إختيار أحد أكواد السّادة الأفاضل و التي كلها تفي بالغرض .. مع التّفكير بإضافة الجزء الذي لا يتكرّر لأبد الآبدين .. و هو الوقت و التّاريخ باحتساب الثواني ..و عمل ربط بينهما  هكذا مثلاً :
كود :
 TextBox1.Text = "INV" & DateTime.Now.ToString("ddMMyyyyhhmmss")


تحياتي
الرد
تم الشكر بواسطة: asemshahen5 , larbihamri , sniperjawadino
#7
(09-01-19, 09:21 PM)asemshahen5 كتب : جرب هذا الاستعلام :


كود :
Select IIF(Max(ID) Is NULL,1,Max(ID)+1) As ID From Test


جميل جدا أخي
شكؤا لك على هذا الإختصار

لدي استفسار إذا أمكن


- هل من الضروري أن أكتب As ID يعني هل من لضروري ن أكتب إسم العمود الذي أستعلم فيه أم يمكنني أن أكتب أي متغير مثل As n

- كيف يمكنني البحث في أكثر من عمود و في نفس الإستعلام مثلا 
Max(ID) As n, Max(ID) As m, Max(ID) As k

 ("MsgBox _dt.Rows(0).Item("n 
 ("MsgBox _dt.Rows(0).Item("m 
 ("MsgBox _dt.Rows(0).Item("k 
هل هكذا صحيح

-هل الإكثار من فتح و غلق الاستعلام يسبب مشاكل لقاعدة البيانات ,,, أكسس مثلا

شكرا لك كثيرا أخي على مساعدتك

(11-01-19, 12:41 AM)عبد العزيز البسكري كتب :
كود :
 TextBox1.Text = "INV" & DateTime.Now.ToString("ddMMyyyyhhmmss")

فعلا أخي الكريم
التاريخ و الوقت لن يتكرر
أنا أستخدم هده الطريقة في Clé Index حتى لا تتكرر القيم
لكن أضن أنه لا يمكن إستخدامها في فاتورة تجارية
لأن الفاتورة التجارية رقم تسلسلي يبدأ من 1
و يجب أن يكون متتابع
الرد
تم الشكر بواسطة: عبد العزيز البسكري
#8
السّلام عليكم و رحمة الله و بركاته
أعلم ذلك أخي الكريم .. و القصد مثلما كتبت لك .. أنّه يجب فقط إضافة هذا الجزء من الكود تحت أي اسم بحقل منفرد
و أثناء عمليّة حفظ الفاتورة بترقيمها العادي الذي لديك .. تعمل إختبار إحتياطي بهذا الجزء من الكود .. من باب التأمين و الإحتياط
تحياتي
الرد
تم الشكر بواسطة: فراس الغزي , فراس الغزي , sniperjawadino
#9
فعلا أخي عبد العزيز هده هي الفكرة
شكرا لك على المتابعة
الرد
تم الشكر بواسطة: عبد العزيز البسكري


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [VB.NET] السلام عليكم عندي استفسار بخصوص الكلاسات AhmedRamadan 3 207 18-09-21, 08:02 PM
آخر رد: العطر الرايق
  استفسار بخصوص فيجوال ستوديو 2013 AhmedRamadan 3 133 17-09-21, 09:02 PM
آخر رد: العطر الرايق
  [VB.NET] استفسار بخصوص التقارير في .net Core 5 mrfenix93 1 95 17-09-21, 08:17 PM
آخر رد: asemshahen5
  طريقة تطبيق هذا الكود عل الدتا قريد ahmedbezia 2 129 17-09-21, 01:52 PM
آخر رد: ahmedbezia
  استفسار بخصوص اختصار اسم الصنف في شاشة المبيعات ahmedbezia 4 141 17-09-21, 02:53 AM
آخر رد: ahmedbezia
Exclamation استفسار بخصوص مشروع عمل ختمة قرآنية بتوزيع الصفحات (لأصحاب الصدقات الجارية) elsayedhasan 10 582 11-09-21, 07:01 PM
آخر رد: dalas
  طريقة لفتح نوافذ مبيعات مختلفة في نفس الوقت وكل فاتورة لها رقم تلقائي tfarejdz 9 1,300 08-09-21, 07:25 PM
آخر رد: tfarejdz
  استفسار بخصوص اخذ نسخه احتياطيه(تم الحل)مشكور اخوانى (waw والاخ asemshahen5) خالد كامل1 18 691 07-09-21, 09:45 PM
آخر رد: waw
  طريقة استعمال الهاتف كقارئ باركود وربطه بالكمبيوتر ahmedbezia 3 201 30-08-21, 09:25 PM
آخر رد: asemshahen5
  [VB.NET] استفسار Nani 4 398 23-08-21, 06:40 PM
آخر رد: Nani

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم