الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

تنسيق الحقل Int لجعله يستقبل القيمة 0001

بدأه المدلهم في 1 ديسمبر 2008 · 10 رد · 1,495 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكــم ورحمـة الله وبركاتــه

أخواني طلب مني تصميم برنامج يقوم بإعطاء رقم تسلسلي للطلاب بهذه الصيغة 0001،0002،0003

على أن يكون الرقم تسلسلي تلقائي و يحتفض بالأصفار قبل الرقم

فشلت كل محاولاتي فلجأت إلى الله أن يسخر لي من يحل لي الإشكالية و هذا أملي بكم أخواني

علما بأن interface الذي استخدمه لإدخال المعلومات هو VB.NET\

سؤالي الثاني

كيف يكون تنسيق الحقل لل Chick Box و Radio button في SQL حيث أن Boolen غير موجودة

السلام عليكــم ورحمـة الله وبركاتــه

#2

بالنسبه لاجابة السؤال الثاني :

استخدم bit

اما بالنسبه للسؤال الاول :

هناك حلان : واحد من خلال البرنامج و الثاني من خلال قاعدة البيانات

من خلال البرنامج :

اعمل function تقوم بالعمليه دي و نادي الداله دي كل ما تريد اظهار ال id بتاع ال student

من خلا قاعدة البيانات :

اعتقد انك مينفعش تعمله identity field و بالتالي لازم تدخله بايدك ( او بداله في السيكول ) كل مره

يعني لما تيجي تدخل بيانات الطالب اعمل trigger يشوف القيمه اللي فاتت كانت كام و يزود عليها واحد و يحط جنبها الاصفار اللازمه و يحطها في الdatabase

اظن الموضوع مش صعب قوي بس حل البرمجه من خلال البرنامج بتاعك ( الحل الاولاني ) اسهل بكتير

#3
{هويدي} كتب:
بالنسبه لاجابة السؤال الثاني :

استخدم bit

اما بالنسبه للسؤال الاول :

هناك حلان : واحد من خلال البرنامج و الثاني من خلال قاعدة البيانات

من خلال البرنامج :

اعمل function تقوم بالعمليه دي و نادي الداله دي كل ما تريد اظهار ال id بتاع ال student

من خلا قاعدة البيانات :

اعتقد انك مينفعش تعمله identity field و بالتالي لازم تدخله بايدك ( او بداله في السيكول ) كل مره

يعني لما تيجي تدخل بيانات الطالب اعمل trigger يشوف القيمه اللي فاتت كانت كام و يزود عليها واحد و يحط جنبها الاصفار اللازمه و يحطها في الdatabase

اظن الموضوع مش صعب قوي بس حل البرمجه من خلال البرنامج بتاعك ( الحل الاولاني ) اسهل بكتير

أخي هويدي شكرا لك

كيف أعمل function توضع الرقم 0001

كمل جميلك الله يخليك

#4

انا للاسف ليس لدي الخبره الكافيه للتعامل مع ال vb.net

لكن الفكره كالاتي :

اعمل مثلا module و اعمل فيه static method لعرض رقم الطالب بحيث يكون الادخال ليها هو الرقم الموجود في قاعدة البيانات مثلا 1 او 200 او 353

تقوم هذه الداله بعمل تهيئة format للرقم و تخرجه ك string في الشكل المطلوب

( اظنها موش صعبه بس هتكتب كود كتير )

و كلما تريد عرض بيانات الطلاب، استدعي هذه الداله على خارج الحقل الخاص برقم الطالب

هذا كل شئ

بالتوفيق ان شاء الله

#5

تفضل اخي

  1.  
  2. SELECT REPLICATE('0', 4 - LEN(CAST(Student_id AS varchar))) + CAST(Student_id AS varchar) A
    S id_no
  3. FROM students
  4.  

#6

بارك الله فيك أخي اسامة

مافهمت وين أحط هذا الكود

أعذرني اتعبك معي

#7

هذا الكود sql .. ممكن تستدعيه او تنفذه من خلال vb.net وللاسف لاعرف استخدام vb.net وإلا كنت اخبرتك .

لنفرض انك حتعطي الطلاب رقم تسلسلي بطريقة 1,2,3 اي بدون اصفر

كيف حتنفذ العمل هذا ؟

هي نفس الطريقة مع تعديل في الكود

#8

الكود السابق بعد التعديل ممكن تطعه في ال trigger الذي سوف يستدعى عند عمليه الادخال على الجدول

trigger for insert on std_tabls

مع مراعاة ان ال std_id هيكون varchar و بالتالي عند الادخال و في ال trigger سوف تقول الاتي :

حول الحقل std_id الي int و احصل على اكبر قيمه ( قيمه اخر ادخال ) و من ثم اجمع واحد على الناتج ثم نفذ دالة الاخ الكريم اسامه و ادخل الناتج الجديد في الحقل std_id مع باقي المعلومات الخاصه بالطالب

لو في مشاكل في التنفيذ اخبرني و انا اساعدك , فقط اتبع السيناريو الذي حددته

بالتوفيق ان شاء الله

#9

الله يجزيكم كل الخير

سأجرب و ارجع لكم

دمتم لنا ذخرا

#10

أخواني

في الدوت نت استخدمت هذا الطريقة

Dim V As Integer

Dim SQL As String = "SELECT REPLICATE('0', 4 - LEN(CAST(st_no2 AS varchar))) + CAST(st_no2 AS varchar) AS st_no2 from stu"

Dim CMD As SqlClient.SqlCommand = New SqlClient.SqlCommand

With CMD

.CommandType = CommandType.Text

.Connection = SqlConnection1

If SqlConnection1.State = ConnectionState.Open Then SqlConnection1.Close()

SqlConnection1.Open()

.CommandText = SQL

V = .ExecuteScalar()

End With

Me.St_no2MaskedTextBox.Text = Val(V) + 1

SqlConnection1.Close()

لكن الأمور بعدها ما ضبطت

المشكلة الحاسوب يشيل الأصفار إلى ع الشمال

#11

السلام عليكم ورحمة الله

اذا اردت الموضوع في vb.net فالامر سهل جدا

غير مايلي :

 

 

sql[color= #008000;]=[color= #808080;]"select cast( max(st_no2) as int)+1 as maxst from stu"

.....

 

 [color= #FF8000;]Me.[color= #0000FF;]St_no2MaskedTextBox.[color= #0000FF;]Text [color= #008000;]= [color= #008000;]= Microsoft.[color= #0000FF;]VisualBasic.[color= #0600FF;]right[color= #000000;]([color= #808080;]"0000" [color= #008000;]& v.[color= #0000FF;]ToString, [color= #FF0000;]4[color= #000000;])

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…