PDA

View Full Version : مبتدی: دسترسی به فیلد کلید آخرین رکورد تیبل



mohammadian7
جمعه 13 خرداد 1390, 02:42 صبح
سلام من میخوام به فیلد کلید آخرین رکورد تیبل دسترسی داشته باشم
با linq
چه تغییری در دستورات باید بدهم؟

LINQDataContext db=new LINQDataContext();
var item = from x in db.tbl_Publishers orderby x.Pid select x.Pid;

if (item!=null)
txtPid.Text = "1";
else
{

gvPublisher.DataSource = item;
txtPid.Text = gvPublisher.CurrentRow.Cells["Pid"].Value.ToString() + 1;
}

sunn789
جمعه 13 خرداد 1390, 13:24 عصر
LINQDataContext db=new LINQDataContext();
var item = (from x in db.tbl_Publishers orderby x.Pid select x.Pid).LastOrDefault();

if (item!=null)
txtPid.Text = "1";
else
{

gvPublisher.DataSource = item;
txtPid.Text = gvPublisher.CurrentRow.Cells["Pid"].Value.ToString() + 1;

mohammadian7
شنبه 14 خرداد 1390, 20:13 عصر
ارور lastordefault is not supported رو میگیره. البته با firstordefault مشکل نداره.
ولی نمیدونم چه جوری از نزولی استفاده کنم منظورم orderbydescending است ساپورت نمیشود.

mohammadian7
شنبه 14 خرداد 1390, 21:02 عصر
مشکلش رو با اضافه کردن ascending و همچنین استفاده از firstordefault حل کردم.
در قسمت شرط هم همیشه true bood که نوع item رو int درنظر گرفتم.
ولی الان مشکل اینجاست که نمیدونم چه جوری باید مقدار فیلد pid رو با عدد یک جمع کنم و در تکست باکس نشون بدم.
دوستان لطفا کمک کنند.
gvPublisher.DataSource =dbPublisher.tbl_Publishers;

int item = (from x in dbPublisher.tbl_Publishers orderby x.Pid ascending select x.Pid).FirstOrDefault();
gvPublisher.DataSource = item;
if (item==0)
txtPid.Text = "1";
else
{
gvPublisher.DataSource = item;
txtPid.Text = (Convert.ToInt32(gvPublisher.CurrentRow.Cells["Pid"])+1).ToString();
}