PDA

View Full Version : سوال: کار با comboBox



shahrzad87
جمعه 10 تیر 1390, 12:15 عصر
سلام
من یک برنامه دارم می نویسم و با dataSet به sql وصلش کردم، توی فرم یک comb دارم که datasourceاش به جدول "company" وصل هست و displayMemberاش هم فیلد "name" از همین جدوله valueMemberاش فیلد "code_company" هست و توی DataBindings قسمت selectedValue فیلد "code_company" از جدول "resid" هست، حالا من می خوام یجوری به code_company نامی که از comb انتخاب شده استفاده کنم و توی یه متغیر بریزمش. این کد رو نوشتم.
می خوام بر اساس textbox و comboBox و maskedtextboxهایی که پر هستند جستجو انجام بدم. اما وقتی combمثلا company خالی هست error میداد که try catch نوشتم دیگه error نمیده اما درست کار نمی کنه و بر اساس اونهایی که پر هستند هم جستجو انجام نمیده!

try
{
VS.company_code = int.Parse(cbx_Vcompany.SelectedValue.ToString());
MessageBox.Show(VS.company_code.ToString());
VS.Resid_num = txt_VresidN.Text;
MessageBox.Show(VS.Resid_num.ToString());
VS.Date_resid = mtxt_VresidDt.Text;
MessageBox.Show(VS.Date_resid.ToString());
VS.Date_save = mtxt_Vdate.Text;
MessageBox.Show(VS.Date_save.ToString());
}
catch { }

VS.ShowDialog();



if (company_code != null & Date_resid != "13 / /")
tbl_voroodTableAdapter.FillBy_comp_residD(dS_main. Tbl_vorood, company_code, Date_resid);
else if (company_code != null)
tbl_voroodTableAdapter.FillBy_company(dS_main.Tbl_ vorood, company_code);
if (Resid_num != "13 / /")
tbl_voroodTableAdapter.FillBy_residN(dS_main.Tbl_v orood, Resid_num);

مثلا وقتی فیلد date پر هست ولی company خالیه نتیجه رو نشون نمیده.
:-??

gwbasic
جمعه 10 تیر 1390, 15:19 عصر
هیچ موقع از ایجور try Catch استفاده نکنید که تو Catch هیچ کدی نوشته نشده اینطوری exception رو گرفتید ولی هیچ کاری انجام ندادید قبل از استفاده از هر موردی مثلا Combo چک کنید که ValueMember و یا SelectedValue خالی هست یا نه و اگر خالی بود و از نظر منطقی باید پر باشد پیغام مناسب به کاربر بدید و اگر نیاز نبود تو سرچتون ازش استفاده نکنید
دوباره تاکید می کنم این کد خیلی خطرناکه چون Exception ها رو می گیره و شمای برنامه نویس هیچ وقت نمی فهمید مشکل از کجا پس باید Exception ها رو هندل کنید این کار دقیقا مثل مادری می مونه که بچش پی پی کرده داره گریه می کنه بعد مادر دهن بچرو می بنده که صدا در نیاد به جای اینکه بفهمه مشکلش چیه که گریه می کنه :لبخند:

ma.rad
جمعه 10 تیر 1390, 15:27 عصر
دوست عزیز به قوانین سایت احترام بزارید وتاپیک تکراری ایجاد نکنید.

shahrzad87
جمعه 10 تیر 1390, 16:34 عصر
ممنون، این کد رو نوشتم اما جواب نداد، error میده که مقدار null صحیح نیست.

Frm_Vsearch VS = new Frm_Vsearch();

if (cbx_Vcompany.SelectedValue.ToString() == null)
VS.company_code = 0;
else
VS.company_code = int.Parse(cbx_Vcompany.SelectedValue.ToString());

MessageBox.Show(VS.company_code.ToString());
VS.Resid_num = txt_VresidN.Text;
MessageBox.Show(VS.Resid_num.ToString());
VS.Date_resid = mtxt_VresidDt.Text;
MessageBox.Show(VS.Date_resid.ToString());
VS.Date_save = mtxt_Vdate.Text;
MessageBox.Show(VS.Date_save.ToString());
VS.ShowDialog();

shahrzad87
جمعه 10 تیر 1390, 16:36 عصر
دوست عزیز به قوانین سایت احترام بزارید وتاپیک تکراری ایجاد نکنید.

بله چشم:) آخه کسی به سوالم جواب نداد به خاطر همین توی تایپیک جدید نوشتم D:

gwbasic
جمعه 10 تیر 1390, 16:49 عصر
نه نشد دیگه اینطوری
if (cbx_Vcompany.SelectedValue == null)
چون اونطوری که شما نوشتید selectedValue اول می خواد به string تبدیل بشه (توسط ToString) ولی چون null هست خطا می ده پس اول null بودن باید چک بشه بعد اگه چیزی بود با استفاده از Tostring یا هر متد دیگه ای روش کار کنید مشکل همین جاست
افتاد (البته با لحن شوخی) :بامزه:

shahrzad87
جمعه 10 تیر 1390, 17:07 عصر
الان SQL SERVERام مشکل پیدا کرد و به database وصل نمیشه تا چند ساعت پیش connect می شد!!!!

TITLE: Connect to Server
------------------------------

Cannot connect to SHAHRZAD-PC.

------------------------------
ADDITIONAL INFORMATION:

A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server) (Microsoft SQL Server, Error: 2)

For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&EvtSrc=MSSQLServer&EvtID=2&LinkId=20476

------------------------------
BUTTONS:

OK
------------------------------

gwbasic
جمعه 10 تیر 1390, 18:18 عصر
اگه connection string تغییر کرده درستش کنین وگرنه سرویس sql شاید stop شده که باید start کنید

shahrzad87
جمعه 10 تیر 1390, 18:34 عصر
لپ تاپ رو Restart کردم درست شد :)

mhdhp86
دوشنبه 16 مرداد 1391, 17:02 عصر
نه نشد دیگه اینطوری
if (cbx_Vcompany.SelectedValue == null)
چون اونطوری که شما نوشتید selectedValue اول می خواد به string تبدیل بشه (توسط ToString) ولی چون null هست خطا می ده پس اول null بودن باید چک بشه بعد اگه چیزی بود با استفاده از Tostring یا هر متد دیگه ای روش کار کنید مشکل همین جاست
من مثل اینو نوشتم:

if ((lastnametxt.Text == "") || (sexcombo.SelectedValue == null ))
{
MessageBox.Show("فیلدهای ستاره دار الزامیست");
check = false;
}


اما کار نمیکنه. با selected index هم امتحان کردم نشد