PDA

View Full Version : مشکل در به کار بردن دستور single در linq برای ارتباط با دیتابیس sql



andaron
شنبه 17 تیر 1391, 19:54 عصر
با سلام دوستان
من می خوام به وسیله linq to Enity
چند تا تکس باکس و چک باکس رو پر کند برای همین با دستور single آشنا شدم ولی مشکلی که است اینکه اگر همه شرطها بر قرار باشه و فقط تو دیتابیس بر اساس همان شرطها فقط یک رکورد وجود داشته باشه درست کار می منه واگر از یکی بیشتر یعنی 2 ر.کورد وجود داشته باشه ارور میده و مهمتر اینکه اگر هیچ رکوردی وجود نداشته باشه باز ارور میده و میگه هیچ چیزی وجود ندارد حالا می خواستم ببینم راهی است این مشکل رو برطرف کنم
اینم نمونه کدی که نوشتم

using (var context = new data_base())
{
int id_reshte=Convert.ToInt32(txt_id.Text);
var date = (from l in context.T_raftar_chart
where l.date_year == date_year
where l.id_reshte == id_reshte
select l);

var _date = date.Single();
//این دستور تضمین می کند که کوری شما یک رکورد داشته باشد
//1
f.txt_reis.Text = _date.reis;
f.radCheckBox1.Checked =Convert.ToBoolean( _date.b_reis);
//2
f.txt_naeb_reis.Text = _date.naeb_reis;
f.radCheckBox2.Checked = Convert.ToBoolean(_date.b_naeb_reis);

f.ShowDialog();

gwbasic
یک شنبه 18 تیر 1391, 00:43 صبح
Single‌دقیقا جایی استفاده می شه که شما مطمئن باشید که یک و فقط یک رکورد وجود داره. اگر تا این حد مطمئن نیستید باید از FirstOrDefault استفاده کنید دراین صورت اگر چند مورد وجود داشته باشد اولی برگردانده می شود و اگر موردی نباشد null‌برگردانده می شود.
البته بدیهی است که در ادامه باید بررسی کنید که در صورت null بودن چه اتفاقی صورت گیرد.