ذخیره Radio Button در دیتابیس اس کیو ال اکسپرس
با درود خدمت همه دوستان و مهندسین عزیز
میخوام Radio Button ذخیره کنم در دیتابیس ولی شیوه ذخیره اون رو نمیدونم
لطفا راهنمایی کنید
تو انجمن گشتم دیدم تو یه پستی در موردش صحبت شده بود ولی متوجه نشدم
لینکش
میخوام در برنامه جنیست رو از طریق یکی از دو گزینه مرد یا زن انتخاب کنم
http://s8.picofile.com/file/8354275150/024.PNG
و سوال دومم، اینجا در دیتابیس، نوع داده رو چی انتخاب کنم؟
http://s9.picofile.com/file/8354275318/025.png
مشخصات:
ویژال استودیو
سی شارپ
اس کیو ال اکسپرس
نقل قول: ذخیره Radio Button در دیتابیس اس کیو ال اکسپرس
سلام
نوع داده در دیتابیس bit هست چون دو حالت داریم یا زن یا مرد.(اگه ترو بود مرد و اگه فالس بود زن)
ذخیره در ADO:
if(mard.Checked)
cmd.Parameters.AddWithValue("@nameField", true);
else//if(zan.Checked)
cmd.Parameters.AddWithValue("@nameField", false);
موقع دریافت از دیتابیس هم اگه مقدار فیلد داخل دیتابیس ترو بود یعنی مرد و اگه فالس بود یعنی زن. (یعنی اگه ترو بود رادیو باتن اولی رو انتخاب می کنی و اگه فالس بود رادیو باتن دومی)
if(Convert.ToBoolean(dt.Rows[0]["nameField"]))
mard.Checked=true;
else
zan.Checked=true;
نقل قول: ذخیره Radio Button در دیتابیس اس کیو ال اکسپرس
نقل قول:
نوشته شده توسط
Mahmoud Zaad
سلام
نوع داده در دیتابیس bit هست چون دو حالت داریم یا زن یا مرد.(اگه ترو بود مرد و اگه فالس بود زن)
ذخیره در ADO:
if(mard.Checked)
cmd.Parameters.AddWithValue("@nameField", true);
else//if(zan.Checked)
cmd.Parameters.AddWithValue("@nameField", false);
موقع دریافت از دیتابیس هم اگه مقدار فیلد داخل دیتابیس ترو بود یعنی مرد و اگه فالس بود یعنی زن. (یعنی اگه ترو بود چک باکس اولی رو انتخاب می کنی و اگه فالس بود چک باکس دومی)
if(Convert.ToBoolean(dt.Rows[0]["nameField"]))
mard.Checked=true;
else
zan.Checked=true;
سپاسگزارم
به نحوی که شما گفتید ساختمش
http://s9.picofile.com/file/8354281884/026.PNG
اگر چک باکس بود چطور باید داده را در دیتابیس انتخاب کنم و در کد نویسی ذخیره کنم؟
و همچنین اگر کمبوباکس بود چطور باید داده را در دیتابیس انتخاب کنم و در کد نویسی ذخیره کنم؟
پایگاه داده من اس کیو ال اکسپرس هست
نقل قول: ذخیره Radio Button در دیتابیس اس کیو ال اکسپرس
چک باکس هم به همین روش میشه. یعنی برای هر چک باکس یه فیلد در دیتابیس داریم و اگر چک باکس تیک داشت true ذخیره میشه و اگر نداشت false ذخیره می شه. در موقع دریافت اطلاعات هم اگر مقدار در دیتابیس true بود چک باکس رو تیک می زنید و اگر false بود بدون تیک می مونه.(یا تیکش رو بر می دارید.)
البته برای انتخاب نوع داده هیچ اجباری هم در کار نیست شما می تونید نوع داده ای رو varchar یا nvarchar یا int یا smallint هم انتخاب کنید و اگر چک باکس/رادیو باتن تیک داشت عدد 1 رو ذخیره کنید و اگه تیک نداشت 0 رو ذخیره کنید. ولی نوع داده ای استاندارد برای این کارها همین bit هست.
-------
کمبوباکس بستگی داره که اطلاعاتش از کجا میاد. شما همیشه باید به این فکر کنید که تا جایی که ممکنه کمترین حجم داده رو ذخیره کنید و اگر لازم بود داده ای رو به هر دلیلی (مثلا اشتباه تایپی) تغییر بدید، با کمترین هزینه این کار رو انجام بدید. (منظور هزینه مالی نیست منظور کمترین دردسر و کدنویسی و زمان و ... هست)
مثلا فرض کنید شما همین مرد یا زن بودن رو میخواید از کمبوباکس بگیرید. 2 راه وجود داره یا اینکه یه فیلد nvarchar در دیتابیس تعریف کنید و اگر کاربر مرد رو انتخاب کنید کلمه مرد رو ذخیره کنید و اگه زن رو انتخاب کرد کلمه زن رو ذخیره کنید. حالا مثلا فرض کنید نرم افزار در حال استفاده است و شما متوجه می شید مرد رو "مرذ" نوشتید. حالا باید برید در دیتابیس کل کلمات رو پیدا کنید و تغییر بدید.
اما راه دوم و صحیح، استفاده از فیلد از نوع bit هست. حالا اگه اشتباه تایپی هم در نرم افزار باشه به راحتی فقط نرم افزار رو تغییر می دید و مشکل حل میشه.
یک حالت دیگه اینه که کمبوباکس به یه جدول بایند هست که در اینجا باید id این جدول در جداول دیگه ذخیره بشه.
نقل قول: ذخیره Radio Button در دیتابیس اس کیو ال اکسپرس
نقل قول:
نوشته شده توسط
Mahmoud Zaad
چک باکس هم به همین روش میشه. یعنی برای هر چک باکس یه فیلد در دیتابیس داریم و اگر چک باکس تیک داشت true ذخیره میشه و اگر نداشت false ذخیره می شه. در موقع دریافت اطلاعات هم اگر مقدار در دیتابیس true بود چک باکس رو تیک می زنید و اگر false بود بدون تیک می مونه.(یا تیکش رو بر می دارید.)
البته برای انتخاب نوع داده هیچ اجباری هم در کار نیست شما می تونید نوع داده ای رو varchar یا nvarchar یا int یا smallint هم انتخاب کنید و اگر چک باکس/رادیو باتن تیک داشت عدد 1 رو ذخیره کنید و اگه تیک نداشت 0 رو ذخیره کنید. ولی نوع داده ای استاندارد برای این کارها همین bit هست.
-------
کمبوباکس بستگی داره که اطلاعاتش از کجا میاد. شما همیشه باید به این فکر کنید که تا جایی که ممکنه کمترین حجم داده رو ذخیره کنید و اگر لازم بود داده ای رو به هر دلیلی (مثلا اشتباه تایپی) تغییر بدید، با کمترین هزینه این کار رو انجام بدید. (منظور هزینه مالی نیست منظور کمترین دردسر و کدنویسی و زمان و ... هست)
مثلا فرض کنید شما همین مرد یا زن بودن رو میخواید از کمبوباکس بگیرید. 2 راه وجود داره یا اینکه یه فیلد nvarchar در دیتابیس تعریف کنید و اگر کاربر مرد رو انتخاب کنید کلمه مرد رو ذخیره کنید و اگه زن رو انتخاب کرد کلمه زن رو ذخیره کنید. حالا مثلا فرض کنید نرم افزار در حال استفاده است و شما متوجه می شید مرد رو "مرذ" نوشتید. حالا باید برید در دیتابیس کل کلمات رو پیدا کنید و تغییر بدید.
اما راه دوم و صحیح، استفاده از فیلد از نوع bit هست. حالا اگه اشتباه تایپی هم در نرم افزار باشه به راحتی فقط نرم افزار رو تغییر می دید و مشکل حل میشه.
یک حالت دیگه اینه که کمبوباکس به یه جدول بایند هست که در اینجا باید id این جدول در جداول دیگه ذخیره بشه.
بی نهایت سپاسگزارم
بله نگرانی هزینه بردار بودن در آینده رو هم داشتم