تقييم الموضوع :
  • 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
فعلا أخي عبد العزيز هده هي الفكرة
شكرا لك على المتابعة
الرد
تم الشكر بواسطة: عبد العزيز البسكري


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  طريقة عرض قيمتين فى تكست بوكس واحد سمير جمال 1 75 16-01-19, 01:58 PM
آخر رد: حريف برمجة
  طريقة توزيع الطلاب على لجان الاختبارات جيولوجي مبتدئ 1 55 15-01-19, 11:19 PM
آخر رد: عبد العزيز البسكري
  ممكن طريقة انهاء يومية للكاشير atef_020 10 326 15-01-19, 04:36 PM
آخر رد: atef_020
  طريقة تكرار الامر تلقائيا | حل مشكلة script error في webbrowser عند فتح صفحة ما soloxocf1 0 66 08-01-19, 07:05 AM
آخر رد: soloxocf1
  طريقة تحديد الكل داخل خلية فى datagridviw atef_020 19 405 07-01-19, 03:36 PM
آخر رد: atef_020
  محتاج طريقة اضافة اعلان مثلا بانر Mohamed Magdy 3 137 02-01-19, 04:11 PM
آخر رد: أبووسم
  ما طريقة ارسال قيمة من تكست الي الريبورت فيور new_programer 0 72 31-12-18, 05:37 PM
آخر رد: new_programer
  ماهي أفضل طريقة لحماية برامجك ؟؟ starosta 12 4,474 31-12-18, 08:45 AM
آخر رد: alfaiz678
  استفسار بشأن جدول العملات alfaiz678 5 190 30-12-18, 09:28 AM
آخر رد: alfaiz678
  [VB.NET] استفسار :- بخصوص textbox dubai.eig 0 72 27-12-18, 12:27 PM
آخر رد: dubai.eig

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


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