PDA

View Full Version : سوال: نحوه ذخیره شماره تلفن



orca13
چهارشنبه 23 آذر 1390, 09:08 صبح
سلام
من میخوام شماره تلفن رو توی بانک ذخیره کنم.

VB.Net + SQL Server

نوع فیلد رو varchar (11) گرفتم و یه text box واسه دریافت گذاشتم. تا 10 رقم که بشه هیچ مشکلی نیست و خطا نمیده، اما با کارکتره 11 می مشکل داره و خطا میده overflow
میشه لطفا راهنمایی کنید که دلیل چیه؟
ممنون

programerinfonet
چهارشنبه 23 آذر 1390, 11:09 صبح
نوع داده ایتو روی Decimal قرار بده

zarrinnegar
چهارشنبه 23 آذر 1390, 13:42 عصر
وقتی نوع داده رو 11 رقمی تعریف میکنی باید 11 رقم عدد توش جا بگیره اگه پیغام overflow میده یا داری تبدیلش میکنی یا چیزی بهش اضافه میکنی یا اضافه میشه
با breakpoint مقدارش رو قبل از اینکه ذخیره کنی چک کن

az.heidarzadeh
چهارشنبه 23 آذر 1390, 15:19 عصر
نوع داده ایتو روی Decimal قرار بده
از نوع مقادیر عددی فقط زمانی استفاده میشه که نیاز به انجام عملیات روی فیلد باشه درغیر اینصورت اینکار اشتباهه...
حرف دوستمون zarrinnegar کاملا درسته باید (varchar(11 دقیقا 11 توش جا میشه مشکل شما حتما جای دیگه است...

h-rafiee
چهارشنبه 23 آذر 1390, 18:46 عصر
یه دستور if برای تعریف طول تکست باکست بنویس که اگه کمتر یا بیشتر بود پیام بده به همین سادگی

orca13
چهارشنبه 23 آذر 1390, 22:00 عصر
نوع داده ایتو روی Decimal قرار بده
ممنون، اما خب دوستمون توضیح دادن

وقتی نوع داده رو 11 رقمی تعریف میکنی باید 11 رقم عدد توش جا بگیره اگه پیغام overflow میده یا داری تبدیلش میکنی یا چیزی بهش اضافه میکنی یا اضافه میشه
با breakpoint مقدارش رو قبل از اینکه ذخیره کنی چک کن
چک کردم، حتی از تابع trim استفاده کردم، دقیقا 11 کاراکتر ارسال میکنه، اما باز هم گیر میده

system32
چهارشنبه 23 آذر 1390, 22:47 عصر
حالا چه اصراری دارید که حتما طولش محدود باشه. شما از نوع nvarchar(50) بگیر و سپس طولش و توی خود برنامه تنظیم کن. MaxLenght

orca13
پنج شنبه 24 آذر 1390, 09:28 صبح
حالا چه اصراری دارید که حتما طولش محدود باشه. شما از نوع nvarchar(50) بگیر و سپس طولش و توی خود برنامه تنظیم کن. MaxLenght
این کار رو هم انجام دادم (قبل زدن تاپیک) بازم نشد!!!

ali reza mansoori 2
پنج شنبه 24 آذر 1390, 14:12 عصر
شما شماره تلفن رو 9 رقمی وارد کن ببین بازم گیر میده بهت
اگر بازم گیر داد که مشکل از طراحی بانک و محدودیت های که روی فیلدت انجام دادی هستش
اگر گیر نداد میتونی مقدار فیلد رو 12 کاراکتری بکنی

orca13
پنج شنبه 24 آذر 1390, 19:33 عصر
شما شماره تلفن رو 9 رقمی وارد کن ببین بازم گیر میده بهت
اگر بازم گیر داد که مشکل از طراحی بانک و محدودیت های که روی فیلدت انجام دادی هستش
اگر گیر نداد میتونی مقدار فیلد رو 12 کاراکتری بکنی
دوسته عزیز من تو پست اول گفتم که تا ده رقم گیر نمیده، فقط 11 تایی بشه گیر میده.

zarrinnegar
پنج شنبه 24 آذر 1390, 22:17 عصر
لطفا کدی رو که برای ذخیره نوشتی و خطی رو که این خطا رو میده بزار تا چک کنیم
معمولا نباید مشکلی باشه مگر در کد نویسی شما

orca13
جمعه 25 آذر 1390, 09:45 صبح
من با دیتا ست کار کردم، query اضافه کردن رو توی دیتا ست نوشتم و اینجا ازش استفاده کردم و مقدار text box رو بهش دادم. کلا یه خط کده.

mahan77
شنبه 26 آذر 1390, 00:46 صبح
به جای varchar از char استفاده کن. با همون یازده کاراکتر

zarrinnegar
شنبه 26 آذر 1390, 00:59 صبح
من با دیتا ست کار کردم، query اضافه کردن رو توی دیتا ست نوشتم و اینجا ازش استفاده کردم و مقدار text box رو بهش دادم. کلا یه خط کده.

میشه اون خطی رو که توی query دیتاست نوشتی بزاری؟:افسرده:

orca13
شنبه 26 آذر 1390, 08:25 صبح
به جای varchar از char استفاده کن. با همون یازده کاراکتر
تست کردم نشد (قبل زدن تاپیک همه اینها رو تست کردم)

میشه اون خطی رو که توی query دیتاست نوشتی بزاری؟:افسرده:
obj1.insertQuery(txtPhone.Text);
obj1 شی ای از نوع دیتا ست مونه