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

كيف يتم عدم تخطي أي خلية فارغة

مغلق
بدأه محمد فؤاد تركي في 25 يناير 2007 · 8 رد · 843 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السادة الافاضل

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

لقد صممت جدول مكون من 4 حقول

الحقل الاول اسمة ID ونوع بيانة Int و ( Not Null)

الحقل الثاني اسمة Name ونوع بيانة Nvarchar و (NULL)

وهكذا المهم السؤال ... ؟

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

لذلك انا اريد تفسير ؟

شكراً و آسف علي الاطالة

certifiedj.jpg

 

 

Image Hosted by ImageShack.us
#2

السلام عليكم ,,,,,,

انها ليست افارغه بالفعل بل بها قيمه = "" او Empty String

و لارجاعها الى NULL اما ان تستخدم امر DBNull.Value سواء من سى شارب او فيجوال بيزيك او من داخل Enterprise Manager تقف عند الخليه التى تريد الغاء محتوياتها و تضغط Ctrl+0

و عندها ستظهر لك رساله الخطأ

تم تعديل هذه المشاركة بواسطة Moustafa Karrar في 25 يناير 2007 في 16:54

لا علم لنا إلا ما علمتنا

و قل رب زدنى علما

و لئن شكرتم لأزيدنكم

#3

أخي الغالي حاولت فهم ما قلت ولكن ما استطعت تطبيق ذلك بــ Enterpris Manager

انظر للصورة وتحديداً للصف رقم 32 ستجد خلية Name فارغة اذن لماذا يتخطي البرنامج هذه الخلية مع اني مسحت محتويات الخلية مع العلم ان المفروض اني محدد انها لا يتم تركها فارغة ولكن عندما يتم تسجيل بها بيانات ومسحها مرة اخري لا تستجيب لاي شيء

برجاء مشاهدة الصورة للتوضيح أكثر

error(2).JPG

certifiedj.jpg

 

 

Image Hosted by ImageShack.us
#4

When you create a table that contain a column that didn't accept empty value you have to tell Sql Server that by using "Not Null"

Create Table xTable 
(
    FirstName nVarChar ( 30 ) NOT NULL 
)

Have Fun

#5

أخي الغالي

Desigen

فعلا من ضمن اعدادات الحقل Not Null لكن بوضوح ( عندما يتم مليء الخلية ببيان ثم أمسح المحتويات مرة اخري يتركها البرنامج فارغه فلماذا لا يعيد البرنامج التنوية عن ان هذه الخلية فارغة ولا يمكن تركها

certifiedj.jpg

 

 

Image Hosted by ImageShack.us
#6

هناك فارق بين الفارغة والـ Null الفارخة تحتوى على empty string والـ Null لا تحتوي على شيئ عندما تقوم بادخال حروف ثم مسحها يتبقة ال empty string لاعادنها الى null استخدم ما شرحه الأخ مصطفى سابقا

When all else fails, read the instructions.

If there is a possibility of several things going wrong the one that will cause the most damage will be the one to go wrong.

No Matter how many times you repeat, there will be someone not listening .

To beat the bureaucracy, make your problem their problem

55926083.png

#7

إذا إنت عم تحكي في بيئة البرمجة فهذا عملك لازم إنت تعرض رسالة خطأ للمستخدم

عموما أنا فهمت قصدك

شوف هذا المثال و جربه خطوة خطوة

سلام

Create Table xT
(
	FName VarChar ( 30 ) Not Null 
)
Go 

Insert into xT ( FName ) Values ( Null ) 
Go 
Insert into xT ( FName ) Values ( '' ) 
Go 
Insert into xT ( FName ) Values ( 'Ahamd' ) 
Go 

Alter Table xT With NoCheck
Add Constraint CH_xT_FName Check ( Len ( FName ) > 0 ) 
Go 

Insert into xT ( FName ) Values ( Null ) 
Go 
Insert into xT ( FName ) Values ( '' ) 
Go 
Insert into xT ( FName ) Values ( 'Desigen' ) 
Go 

Select * From xT Go
#8

أخي الغالي Design

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

المطلوب كما هو موضح بالملف الفيديو ان البرنامج قد تخطي الخلية بعد تسجيل بداخلها بيانات ثم تم مسحها مرة اخري وأمر Ctr+0 لا يؤدي الي المطلوب بالنسبة لي

برجاء اضغط هنا لمشاهدة ماذا اريد بالضبط

certifiedj.jpg

 

 

Image Hosted by ImageShack.us
#9

السلام عليكم

أخي عندما أدخلت القيمة إلى الجدول يدويا ثم قمت بحذفها لم يعتبرها الـ sql server أن هذه القيمة هي قيمة null وإنما اعتبرها '' نص فارغ،

انتبه نص أي ليست null

الحل هو من خلال عمل إجرائية في الـ sql server

لنفرض أن لدي جدول اسمه test

يحوي على الحقول التالية: Name وهو من نوع nvarchar(15) وهو not null

فقط الإجرائية هي التالية

CREATE PROCEDURE InsertName 
	-- Add the parameters for the stored procedure here
	@Name nvarchar(15)
AS
BEGIN
	insert into test
		values(case @Name when '' then NULL else @Name end);
END

حيث في تعليمة الـcase

case @Name when '' then NULL else @Name end

أي تقول للمترجم إذا كانت قيمة المتحول @Name قيمتها '' أي سلسلة فارغة أرجع قيمة NULL وإلا أرجع قيمة المتحول @Name

وشكرا

تم تعديل هذه المشاركة بواسطة عبد الكريم في 5 فبراير 2007 في 14:25

هذا الموضوع مغلق.

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

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

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

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

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