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

ما هي طريقة حفظ الحقول الفارغة بـ NULLL في قاعدة البيانات

بدأه فداء القمر في 18 مايو 2011 · 8 رد · 3,663 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع
بسم الله ،والسلام عليكم

تحية طيبة ،،،

عندي اكثر من سوال متصلة ببعض ، يتعلق بالحفظ بقاعدة البيانات سيكوال سيرفر باستخدام فيجوال بيسك دوت نت 2010

1 .اذا تركت حقل من نوع نص يتم الحفظ في قاعدة البيانات ولكن بقيمة خالية وليست NULL

وانا اريد اذا تركت الحقل فارغ بدون ادخال شي بالبرنامج وحفظت ، يحفظ لي NULL وليس فراغ او ماشابه .

2 .نفس الاول لكن نوع الحقل رقمي ،الفرق هنا انه لا يقبل ترك الحقول الرقمية فارغة ويعطي خطا اثناء الحفظ

فما هو حل المشكلة ،مع امكانية حفظ NULL في قاعدة البيانات اذا لم ادخل شي في الحقل .

3. عندي حقل نوع رقم لادخال رقم جوال ،يحفظ ولكن مع حذف رقم صفر الموجود باليسار

انا اعرف انه السيكوال تلقائيا يحذف اي اصفار على اليسار باعتبارها لا تمثل قيمة في الحسابات

ولكن انا اريد انا امنع حذف الصفر لانه رقم جوال ،فما الحل.

4. اريد الاستعلام عن بيانات حقل معين وملىء قيم الحقل في كمبو بوكس ،ولكن مع تجاهل القيم الفارغة NULL

فهل استطيع او لا يمكن ،مع العلم اني استخدم تقنية ADO.net بالوضع المتصل.

مع الشكر لكم اخواني ،واتمنى لكم التوفيق .

تم تعديل هذه المشاركة بواسطة فداء القمر في 18 مايو 2011 في 10:19

#2

السلام عليكم

1+2 :لجعل حقل يأخذ قيمة null فيجب اسناد القيم null في السي شارب او nothing في البيسك

3: يجب تحويل الحقل الى حقل نصي وليس رقمي .

4: كمايلي :

 select distinct  x from table1 where x is not null

استخدام distinct لمنع التكرار ويمكن ازالتها .

وطبعا من الافضل وضع هذه القيم في جدول خاص فيما يسمى lookup table

تم تعديل هذه المشاركة بواسطة TareqVB في 18 مايو 2011 في 10:50

#3

يعطيك الف عافية اخوي

ولكن كيف اسند nothing وهي جملة اضافة للقاعدة تتعتمد على المدخل بالمربع النصى كالتالي

cmd.Parameters.Add("@note",SqlDbType.NVarChar).Value=TextBox1.Text

كود في الوضع المتصل باستخدام StoredProcedure والبراميتر @note ياخذ قيمته من textbox

انا اعتمد على المدخل بمربع النص note الملاحظات ، ربما يكون خالي اذا كان خالي اريد يسجل بالحقل بقاعدة البيانات NULL

وليس فارغ كما يحصل الان معي ،هذا مقصدي من السوال الاول

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

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

السوال الاخير وصلت الفكرة ،هل يصبح كودي بعد التعديل هكذا صحيح ؟

tecmd.CommandText = "select distinct phonNumber from add_visitor where phonNumber is not null"

dr = cmd.ExecuteReader

While dr.Read()

ComboBox1.Items.Add(dr("phonNumber"))

End While

وشكر مره اخرى على سرعة الرد ،وباالتوفيق وربي يعطيك العافية .

تم تعديل هذه المشاركة بواسطة فداء القمر في 18 مايو 2011 في 12:09

#4

بجملة شرط ل 1 + 2

        If String.IsNullOrEmpty(TextBox1.Text) Then
            cmd.Parameters.Add("@note", SqlDbType.NVarChar).Value = Nothing
        Else
            cmd.Parameters.Add("@note", SqlDbType.NVarChar).Value = TextBox1.Text
        End If

3- اعتقد انه لايوجد حل الا بتغيير نوع الحقل .طبعا اذا دائما الرقم صفر ممكن اضافته في الكود او في الاستعلام مثل

ComboBox1.Items.Add ( "0" & dr("phonNumber"))

والسؤال الاخير هو كما ماقصدت

#5

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

يمكنك استخدام DBNull.Value

.:: Wish to become better and better ::.

#6

يعطيك العافية TareqVB

بقينا 1+2 ما نفعت جملة الشرط وتطلع لي رسالة خطا هذا نصها

parameter '@ firstName_a' which was not supplied

وما عليش تعبتك معي ،ومشكور.

VB Helper ارجو التوضيح اكثر وشكرا.

#7

تأكدي من اسم الباراميتر '@ firstName_a'

حيث يظهر وجود فراغ بين @ والاسم

اقتباس
VB Helper ارجو التوضيح اكثر وشكرا.

بدل nothing ضعي DBNull.Value

#8

تم الحل بتبديل nothing الى DBNull.value وحفظ الحقول الفارغ بـ NULL

يعطيك الف عافيه مشكلة الاسبوع انحلت منك بيوم

ولكن اصبح الكود مرهق وطويل بسبب جملة الشرط if ،ولكن لا باس بهذا.

اخوك

#9

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

اخي طارق يمكننا استخدام DBNull.Value لارجاع قيمة فارغه يمكننا تمريرها الى قاعدة البيانات ... واعتقد انها افادت الاخت فداء القمر .. بالتوفيق ..

.:: Wish to become better and better ::.

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

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

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

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

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