منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[VB.NET] استفسار لأفضل طريقة لتخزين رقم الفاتورة - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : [VB.NET] استفسار لأفضل طريقة لتخزين رقم الفاتورة (/showthread.php?tid=28183)



استفسار لأفضل طريقة لتخزين رقم الفاتورة - sniperjawadino - 09-01-19

اسلام عليكم إخواني

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

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


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

شكرا لكم






RE: استفسار لأفضل طريقة لتخزين رقم الفاتورة - asemshahen5 - 09-01-19

جرب هذا الاستعلام :


كود :
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
حسب ما تريد بالنسبة لي أفضل طرقة الاستعلام و إغلاق الاتصال مع كل استعلام .


RE: استفسار لأفضل طريقة لتخزين رقم الفاتورة - larbihamri - 10-01-19

انا ارى ان افضل طريقة لتخزين رقم الفاتورة هي عن طريق تخزين قيمة التاريخ و الوقت فتاريخ اليوم لن يتكرر ابدا مثلا : تاريخ اليوم هو 10/01/2019 قم بحذف "/" ليصبح 10012019 وأضف له الوقت بنفس الطريقة
لقد ارفقت لك مثال اتمنى ان يفيدك


RE: استفسار لأفضل طريقة لتخزين رقم الفاتورة - asemshahen5 - 10-01-19

بالنسبة لرقم الفاتورة فجميعنا يعلم ان كل تاجر يملك دفتر فواتير ورقية له ارقام محددة غير مكرر يبدأ برقم و ينتهي برقم و هكذا لذالك تعلم ان تضع خانة في خصائص الفواتير اسمها رقم الدفتر و من ثم تزيد عليه واحد و هكذا ..


RE: استفسار لأفضل طريقة لتخزين رقم الفاتورة - new_programer - 10-01-19

ممكن تستخدم الطريقة التالية عبارة عن جلب اكبر رقم ثم اضف اليه 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() + '  جلب اكبر رقم 



RE: استفسار لأفضل طريقة لتخزين رقم الفاتورة - عبد العزيز البسكري - 11-01-19

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


تحياتي



RE: استفسار لأفضل طريقة لتخزين رقم الفاتورة - sniperjawadino - 14-01-19

(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
و يجب أن يكون متتابع


RE: استفسار لأفضل طريقة لتخزين رقم الفاتورة - عبد العزيز البسكري - 14-01-19

السّلام عليكم و رحمة الله و بركاته
أعلم ذلك أخي الكريم .. و القصد مثلما كتبت لك .. أنّه يجب فقط إضافة هذا الجزء من الكود تحت أي اسم بحقل منفرد
و أثناء عمليّة حفظ الفاتورة بترقيمها العادي الذي لديك .. تعمل إختبار إحتياطي بهذا الجزء من الكود .. من باب التأمين و الإحتياط
تحياتي



RE: استفسار لأفضل طريقة لتخزين رقم الفاتورة - sniperjawadino - 16-01-19

فعلا أخي عبد العزيز هده هي الفكرة
شكرا لك على المتابعة