PDA

View Full Version : قبول کردن فیلدهای خالی در vb



فاطیما
دوشنبه 19 اردیبهشت 1384, 22:43 عصر
با سلام
من یک جدول در sql ساخته ام و فیلدهای آن را allow nallsانتخاب کرده ام ولی هنگام ضبط اطلاعات در برنامه vbپیغام check each stats value را می دهد.

niloufar
سه شنبه 20 اردیبهشت 1384, 12:21 عصر
سلام
1- سعی کنید هیچگاه در بانک، Null قرار ندهید. مشکلات زیادی داره (مثل هنگام مقایسه ها). بهتره به جای Null ست کردن، Empty قرار دهید.
2- در مورد آن پیغام هم بیشتر توضیح دهید که کجا رخ داده. نمی دونم، شاید در هنگام Insert کردن اسم فیلد را آورده اید ولی مقدار نداده اید. شاید آن فیلد AutoNumber باشد و شاید یه فیلد Unique. خلاصه خیلی چیزها (البته حدسی). برای نظر بهتر دقیقا بفرمایید چه کاری دارید انجام می دهید.

hadi2345
سه شنبه 20 اردیبهشت 1384, 18:52 عصر
این پیغامی که شما دیده اید احتمالا هیچ ربطی به خالی بودن فیلدها ندارد لطفا توضیح بیشتری بدید.

sadegi
چهارشنبه 21 اردیبهشت 1384, 00:08 صبح
دوست عزیز با چه روشی با پایگاه داده تون ارتباط برقرار میکنین؟

فاطیما
پنج شنبه 22 اردیبهشت 1384, 17:40 عصر
سلام
1- سعی کنید هیچگاه در بانک، Null قرار ندهید. مشکلات زیادی داره (مثل هنگام مقایسه ها). بهتره به جای Null ست کردن، Empty قرار دهید.
2- در مورد آن پیغام هم بیشتر توضیح دهید که کجا رخ داده. نمی دونم، شاید در هنگام Insert کردن اسم فیلد را آورده اید ولی مقدار نداده اید. شاید آن فیلد AutoNumber باشد و شاید یه فیلد Unique. خلاصه خیلی چیزها (البته حدسی). برای نظر بهتر دقیقا بفرمایید چه کاری دارید انجام می دهید.
سلام
اولا از راهنمایی شما خیلی ممنون
ثانیا من اطلاعات مربوط به یک کتاب را در بانکم وارد می کنم. اگر کل فیلدها را پر کنم هیچ مشکلی وجود نداره ولی اگر یکی از فیلدها را پر نکنم پیغام خطا می دهد.

فاطیما
پنج شنبه 22 اردیبهشت 1384, 17:41 عصر
سلام
1- سعی کنید هیچگاه در بانک، Null قرار ندهید. مشکلات زیادی داره (مثل هنگام مقایسه ها). بهتره به جای Null ست کردن، Empty قرار دهید.
2- در مورد آن پیغام هم بیشتر توضیح دهید که کجا رخ داده. نمی دونم، شاید در هنگام Insert کردن اسم فیلد را آورده اید ولی مقدار نداده اید. شاید آن فیلد AutoNumber باشد و شاید یه فیلد Unique. خلاصه خیلی چیزها (البته حدسی). برای نظر بهتر دقیقا بفرمایید چه کاری دارید انجام می دهید.
با سلام
اولا از راهنمایی شما خیلی ممنون
ثانیا من اطلاعات مربوط به یک کتاب را در بانکم وارد می کنم. اگر کل فیلدها را پر کنم هیچ مشکلی وجود نداره ولی اگر یکی از فیلدها را پر نکنم پیغام خطا می دهد.

sadegi
پنج شنبه 22 اردیبهشت 1384, 20:45 عصر
دوست عزیز یه نمونه براتون میزارم
ولی متاسفانه من این رو برای کار با access نوشتم
امیدوارم که به دردت بخوره
فقط به روش ست کردن text box ها رو به recordset توجه بیشتری کنید
فکر کنم این روش تو sql هم جواب بده

فاطیما
یک شنبه 25 اردیبهشت 1384, 21:08 عصر
سلام
1- سعی کنید هیچگاه در بانک، Null قرار ندهید. مشکلات زیادی داره (مثل هنگام مقایسه ها). بهتره به جای Null ست کردن، Empty قرار دهید.
2- در مورد آن پیغام هم بیشتر توضیح دهید که کجا رخ داده. نمی دونم، شاید در هنگام Insert کردن اسم فیلد را آورده اید ولی مقدار نداده اید. شاید آن فیلد AutoNumber باشد و شاید یه فیلد Unique. خلاصه خیلی چیزها (البته حدسی). برای نظر بهتر دقیقا بفرمایید چه کاری دارید انجام می دهید.
دوست عزیز سلام
ببخشید من خیلی sql بلد نیستم لطفا بیشتر مرا راهنمایی کنید.
منظورتان از <<بهتره به جای Null ست کردن، Empty قرار دهید>> چیست؟
در ضمن فیلد من از نوع numericو datetime است. چطور می توانم در sql برای این دو فیلد default تعریف کنم؟
ارتباط بانک با vb از طریق adodcمیباشد.
متشکرم. :flower:

hadi2345
سه شنبه 27 اردیبهشت 1384, 21:29 عصر
تابعی بنویس که قبل از ثبت داده ها textbox ها رو کنترل کنه و اگر هر کدام از textbox ها خالی بودند یک مقدار پیش فرض بگذارد . مثلا خط تیره و یا یک عدد و یا کلمه "خالی" و ....

niloufar
چهارشنبه 28 اردیبهشت 1384, 14:54 عصر
سلام

دوست عزیز سلام
ببخشید من خیلی sql بلد نیستم لطفا بیشتر مرا راهنمایی کنید.
منظورتان از <<بهتره به جای Null ست کردن، Empty قرار دهید>> چیست؟

ببینید مثلا اگر دو فیلد به نام fNmae و lName در جدول Person داشته باشید، اگه شما در یه Command دستور SQL زیر را وارد کنید:

Insert Into Person (fName) values ('Niloufar')
در اینصورت در فیلد lNmae (البته اگه پیش فرضی نداشته باشه) Null ثبت میشه (چون چیزی بهش نرسیده). اما اگه انجوری بنویسید:

Insert Into Person (fName, lName) values ('Niloufar','')
در اینصورت باز هم نام خانوادگی را وارد نکرده اید ولی به فیلد آن، Empty ست کرده اید نه Null. در اینصورت دیگه مشکلاتی که Nullها دارند مرتفع خواهد شد.

در ضمن فیلد من از نوع numericو datetime است. چطور می توانم در sql برای این دو فیلد default تعریف کنم
برای Default تعریف کردن، می تونید برای هر فیلد مقدار پیش فرض (در هنگام طراحی بانک) بدهید. اما اگه بخواهید در خود VB این کار را بکنید، یا باید در خود VB هم بانک را بسازید یا اینکه خودتان هر جا مقداری وارد نشده بود، یه چیز خاص وارد کنید (یعنی یه ابتکار بجای مقدار پیش فرض).

تابعی بنویس که قبل از ثبت داده ها textbox ها رو کنترل کنه و اگر هر کدام از textbox ها خالی بودند یک مقدار پیش فرض بگذارد . مثلا خط تیره و یا یک عدد و یا کلمه "خالی" و ....
البته این فرمایش برای مقدار پیش فرض صحیح است، اما برای رفع مشکل Null همانطور که عرض شد، با Empty ست کردن، نیاز به این مسائل نیست.