PDA

View Full Version : مشکل در select کردن وقتی join میکنم در linq



mustafaehsani
یک شنبه 25 خرداد 1393, 20:37 عصر
من دوتا جدول دارم

1- Credit2
که دارای ستونهای CID,CName,Unit هست

2- H.Kardani
که دارای ستونهای CerID,HKID هست

از طریق CID از Credit2 با CreID از H.Kardani با هم join هستند. من میخوام از طریق textbox کدی بگیرم و اگه این کد در جدول H.Kardani وجود داشت از طریق join به Unit از جدول Credit2 واکشی کنم و در یک شرط تستش کنم که کد ریز نوشتم

int cr1 = int.Parse(TextBox1.Text);
var sel1 = (from hk in db.H_Kardanis
join cr in db.Credit2s on hk.CreID equals cr.CID
where hk.CreID == cr1
select new { cr1 = hk.CreID, gr1 = cr.Unit });

int cr2 = int.Parse(TextBox2.Text);
var sel2 = (from hk in db.H_Kardanis
join cr in db.Credit2s on hk.CreID equals cr.CID
where hk.CreID == cr2
select new { cr2 = hk.CreID, gr2 = cr.Unit });
if(sel2.Any() || sel1.Any())
{
if ((gr1 + gr2) > 6)
{
lblno.Visible = true;
lblno.Text = "شما مجاز به انتخاب تا سقف 6 واحد می باشید";

}
else if (cr2 == cr1)
{
DetailsView2.Visible = false;
lblno.Visible = true;
lblno.Text = "کد وارد شده تکراری می باشد";
}
else
{

TextBox3.Visible = true;
}
}

else
{
lblno.Visible = true;
lblno.Text = "کد وارد شده اشتباه است";
}


نمیدونم چه مشکلی در کد نوبسی دارم که این شرط if ((gr1 + gr2) > 6) اصلاً چک نمیکنه

mustafaehsani
یک شنبه 25 خرداد 1393, 22:45 عصر
اساتید خواهشاً کمک کنند:گریه:

یه جوونمرد پیدا نمیشه :عصبانی++:

aroshanzamir
دوشنبه 26 خرداد 1393, 13:51 عصر
سلام دوست من :
اول سعی کن از اسم های خوبی استفاده کنی تا بتونی بفهمی داره چی میشه :
دوم :

var avilabelItem=from kardani in db.HKardani where kardani.HKID==textbox1.text;
if(avilabelItem!=null)
{
var query = from kardani in db.HKardani
where kardani.HKID == textbox1.text
join credit in db.Credit on kardani.CerId equals credit.Cid
select new
{
unit = credit.unit
};
}

mustafaehsani
پنج شنبه 29 خرداد 1393, 18:52 عصر
کدی که بالاخره جواب داد


int cr1;
cr1 = int.Parse(TextBox1.Text);
var sea = (from hk in db.Hb_KardaniPs
where hk.CreID == cr1
join crd in db.Credit2s on hk.CreID equals crd.CID
select crd.Unit).Single();
int cr2;
cr2 = int.Parse(TextBox2.Text);
var sel2 = (from hk in db.Hb_KardaniPs
where hk.CreID == cr2
select hk);
if (sel2.Any())
{
var seb = (from hk in db.Hb_KardaniPs
where hk.CreID == cr2
join crd in db.Credit2s on hk.CreID equals crd.CID
select crd.Unit).Single();
if (cr2 == cr1)
{
lblno.Text = "کد وارد شده تکراری می باشد";
}
else if ((sea + seb) < 7)
{
SqlDataSource6.SelectCommand = "SELECT ............................";
}
else
{
lblok.Text = "شما مجاز به انتخاب تا سقف 6 واحد می باشید";
}
}
else
{
lblno.Text = "کد وارد شده اشتباه است";
}