PDA

View Full Version : سوال: سوال ساده در مورد دکمه ویرایش



seied javad
شنبه 17 خرداد 1393, 19:07 عصر
سلام
من یک بانک با SQLEXPRESS ایجاد کردم و با سی شارپ ارتباطش دادم
من روی فرمم یک دیتا گرید ویو دارم که وقتی فرم لود میشه اطلاعات داخل بانک را داخلش نمایش میده
برنامه من اینطوری که وقتی شما میخواهید کاربری را ویرایش کنید شماره id اونو داخل تکس باکس مینویسید و داخل پنج تا تکس باکس پایین اطلاعاتشو ویرایش میکنید.
من یک سوال کوچیک دارم اونم اینکه :
اگر id که شما وارد کردید توی بانک موجود نبود پنج تا تکس باکس پایین غیر فعال باشه و وقتی id مورد نظر شما داخل بانک موجود بود پنج تا تکس باکس فعال بشه. و اگر وقتی اطلاعات داخل بانک موجود نیست و تکس باکس ها هم فعال نیست ولی شما روی دکمه ویرایش کلیک کردید یک پیام نمایش داده بشه که کاربرموجود نیست.

مشخصات بانکم:
اسم بانک= Phonebook.mdf
اسم جدول بانک= phone
فیلدهای بانک= id وfname و lname و number و number2

اینم یک نما از دیتا گرید ویو:

http://www.xum.ir/images/2014/05/31/dataGridViewh04u.jpg

یعنی اگر id یک نفر 155 بود
وشما برای ویرایشش id اونو داخل تکس باکس وارد کردید ولی نوشتید 15 همچنان 5 تا تکس باکس پایین غیرفعال باشه و وقتی که شما وارد کردید 155 پنج تا تکس باکس پایین فعال بشه

mojtaba0912433
شنبه 17 خرداد 1393, 19:23 عصر
بخشی از جواب را خودت دادی .بالای اون دستوری که مقادیر Id را برمیگردونه یک شرط بزار که اگر تعداد رکوردهایی که برمیگردونه کوچیکتر از یک باشه تکس باکسهات غیر فعال بشه

Yanehsar
شنبه 17 خرداد 1393, 20:58 عصر
سلام
من یک بانک با SQLEXPRESS ایجاد کردم و با سی شارپ ارتباطش دادم
من روی فرمم یک دیتا گرید ویو دارم که وقتی فرم لود میشه اطلاعات داخل بانک را داخلش نمایش میده
برنامه من اینطوری که وقتی شما میخواهید کاربری را ویرایش کنید شماره id اونو داخل تکس باکس مینویسید و داخل پنج تا تکس باکس پایین اطلاعاتشو ویرایش میکنید.
من یک سوال کوچیک دارم اونم اینکه :
اگر id که شما وارد کردید توی بانک موجود نبود پنج تا تکس باکس پایین غیر فعال باشه و وقتی id مورد نظر شما داخل بانک موجود بود پنج تا تکس باکس فعال بشه. و اگر وقتی اطلاعات داخل بانک موجود نیست و تکس باکس ها هم فعال نیست ولی شما روی دکمه ویرایش کلیک کردید یک پیام نمایش داده بشه که کاربرموجود نیست.

مشخصات بانکم:
اسم بانک= Phonebook.mdf
اسم جدول بانک= phone
فیلدهای بانک= id وfname و lname و number و number2

اینم یک نما از دیتا گرید ویو:


با سلام کاری که من معمولا انجام میدم به این شکل هستش که کاربر از دیتاگردید ویو یه سطر رو انتخاب می کنه و اطلاعاتش تویه تکس باکس ها پر میشه و ... (حالا اگر تعداد رکورد ها زیاده می تونید یه جستجو بذاری که کاربر راحتتر رکورد مورد نظرشو بذار)



یعنی اگر id یک نفر 155 بود
وشما برای ویرایشش id اونو داخل تکس باکس وارد کردید ولی نوشتید 15 همچنان 5 تا تکس باکس پایین غیرفعال باشه و وقتی که شما وارد کردید 155 پنج تا تکس باکس پایین فعال بشه
این هم یه مشکل داره شما هم رکورد 155 دارید هم رکورد 15 هم 1555 هم 1553 و.... از کجا می دونید منظور کاربر کدومه که تکس باکس رو فعال و غیرفعال کنید ؟

seied javad
یک شنبه 18 خرداد 1393, 14:58 عصر
بخشی از جواب را خودت دادی .بالای اون دستوری که مقادیر Id را برمیگردونه یک شرط بزار که اگر تعداد رکوردهایی که برمیگردونه کوچیکتر از یک باشه تکس باکسهات غیر فعال بشه

میشه لطفا قطعه کدشو بذاری؟

seied javad
یک شنبه 18 خرداد 1393, 15:00 عصر
با سلام کاری که من معمولا انجام میدم به این شکل هستش که کاربر از دیتاگردید ویو یه سطر رو انتخاب می کنه و اطلاعاتش تویه تکس باکس ها پر میشه و ... (حالا اگر تعداد رکورد ها زیاده می تونید یه جستجو بذاری که کاربر راحتتر رکورد مورد نظرشو بذار)

این هم یه مشکل داره شما هم رکورد 155 دارید هم رکورد 15 هم 1555 هم 1553 و.... از کجا می دونید منظور کاربر کدومه که تکس باکس رو فعال و غیرفعال کنید ؟

اصلا این تکس باکس های فعال و غیر فعال را ولش کنید
چه جوری اگر شما برای ویرایش id را وارد کردی که داخل بانک نبود یک پیام نمایش داده بشه و بگه id مورد نظر موجودنیست؟

Yanehsar
یک شنبه 18 خرداد 1393, 17:55 عصر
یه دستور Select شرط دار انجام میدید و نتیجه رو بررسی می کنید اگر یک بود که رکورد وجود داره اگر نبود هم که خطا . به شرطی که ای دی فیلد کلیدی و یکتا باشه . مثلا این یه نمونه کد :


da = new OleDbDataAdapter("select count(*) from QHeder where IDsazman="+IDsazman+"", con);
DataSet dscount = new DataSet();
DataView dvcount = new DataView();
da.Fill(dscount, "QHeder");
dvcount.Table = dscount.Tables["QHeder"];
int a=Convert.ToInt32(dvcount[0][0]);
return a;

اینجا به شکل تابع استفاده شده مقدار aچک میشه و ...