PDA

View Full Version : تبدیل مقدار تهی به نوع داده int



behzadkhan
دوشنبه 19 خرداد 1393, 10:41 صبح
با سلام

هنگام اجرای تکه کد زیر اگر درون txtCode.Text مقداری وجود نداشته باشد برنامه با خطا مواجه می شود.

در واقع query اجرا شده ولی وقتی می خواهد در datagridview2.DataSource ریخته شود خطا می گیرد.

تکه کد:

MPEntities MP = new MPEntities();
var query = from p in MP.tbl_Zonkan
where p.Name == txtName.Text
where p.Code == int.Parse(txtCode.Text)
select p;

dataGridView2.DataSource = query;



با تشکر

mousa1992
دوشنبه 19 خرداد 1393, 10:49 صبح
در چنین مواردی شما باید کاربر را ملزم به وارد کردن مقدار کنید! txtCode باید فقط عدد بگیره نه حرف و نه مقدار خالی و در غیر این صورت با پیامی مناسب کاربر رو مطلع کنید

behzadkhan
دوشنبه 19 خرداد 1393, 11:47 صبح
با سلام و تشکر از جوابتان

در این تکه کد دو فیلد وجود دارد کاربر نام را وارد کرده ولی کد را وارد نمی کند(چون کد را نمی داند) و می خواهد یک نتیجه را ببیند.

به چه نحوی در صورت خالی بودن کد آن فیلد را از جستجو حذف کرده و فقط بر اساس نام جستجو کنم.

با تشکر

Hadoop
سه شنبه 20 خرداد 1393, 05:26 صبح
این کد مشکل دیگه ای هم داره ... کافیه کاربر کدی برای تکست کد وارد کنه که قابل پارس به عدد نباشه. برنامه کرش میکنه.
فکر هم نکنم دو تا where بخواهی . کافیه دوتا شرط رو با با هم && کنی در یک where

برای قسمت اول سوال هم راههای مختلفی هست. مثلا این یکیش:

p.Name == txt.Name رو خارج از این کوئری داخل یک متغیر بولین بریز نتیجه اش رو اگر تکست باکس string.IsNullOrWhiteSpace نباشد . در غیر اینصورت مقدار متغیر بولین رو دیفالت روی True بذار .... بعد داخل این کوئری به جای شرط اول بنویس where myBooleanVariableAbove && شرط دوم


راه دیگه هم اینکه هیچی! دو تا کوئری جدا بنویسی!