PDA

View Full Version : نحوه بدست آوردن مقدار یک سلول جدول توسط linq



setareh2013
پنج شنبه 16 خرداد 1392, 08:16 صبح
با سلام
من قبلا با دستور dt.rows[0]["scol"] می تونستم مقدار یک خانه جدول رو بدست بیاورم ولی نمی دونم چه طوری این کارو با linq انجام بدم . من می خوام با کلیک روی یک دکمه جمع حقوق یک نفر از مثلا حقوق سه ماه اخیر رو چاپ کنه . کد زیر رو نوشتم ولی نمی دونم داخل حلقه for رو چه طوری بنویسم .
mylinqDataContext db = new mylinqDataContext();
var query1 = from s in db.SalaryTBs
select s;
var max = (from s2 in db.SalaryTBs select s2.sid).Max();
int numberofrows = query1.Count();
long salarycol = 0;
for (int i = 1; i <= numberofrows; i++)
{
salarycol =؟
}
ممنون از راهنماییتون

pershengkurd
پنج شنبه 16 خرداد 1392, 08:36 صبح
.firstordefault

کار linq با مجموعه است پس اگر میخواید یک رکورد برگردونده بشه اولین رو ازش بخواید

setareh2013
پنج شنبه 16 خرداد 1392, 15:34 عصر
خیلی کلی گفتید چیزی نفهمیدم . میشه واضح تر بگید ؟ ممنون

fool66
پنج شنبه 16 خرداد 1392, 15:41 عصر
میشه واضح تر بگی می خوای چکار کنی ؟؟؟

_behnam_
پنج شنبه 16 خرداد 1392, 16:16 عصر
اول مقدار query1 رو به یه آرایه تبدیل کنید و بعد اندبس مورد نظر رو انخاب کنید
query1 .ToArray()
اینجوری تمام رکورد های انتخابی رو توی یک آرایه از نوع تیبل مورد نظر داریم. یا میتونید توی یک آرایه بریزید یا میتونید همئن موقع که به آرایه تبدیل میکنید اندیس رو بگیرید.
query1 .ToArray()[0].ColumnName

setareh2013
پنج شنبه 16 خرداد 1392, 23:08 عصر
اول مقدار query1 رو به یه آرایه تبدیل کنید و بعد اندبس مورد نظر رو انخاب کنید
query1 .ToArray()
اینجوری تمام رکورد های انتخابی رو توی یک آرایه از نوع تیبل مورد نظر داریم. یا میتونید توی یک آرایه بریزید یا میتونید همئن موقع که به آرایه تبدیل میکنید اندیس رو بگیرید.
query1 .ToArray()[0].ColumnName

این عکس چیه گذاشتید اینجا
نمی گید نصف شبی آدم می ترسه .
یعنی چی خب

setareh2013
پنج شنبه 16 خرداد 1392, 23:11 عصر
من می خوام آیتم داخل مثلا خانه ی [2,2] جدول داخل پایگاه داده رو بدست بیارم اون هم با linq
یه کم ساده تر از آرایه بگید
مثلا با datatable با کد dt.rows[2][2] .tostring می شد این کارو راحت کرد . حالا با لینک نمی دونم چه طوری این کارو بکنم .
ممنون

setareh2013
یک شنبه 19 خرداد 1392, 00:09 صبح
لطفا به یه روش ساده بهم بگید . روش آرایه سخته

صباح فتحی
یک شنبه 19 خرداد 1392, 00:31 صبح
اینو یه نگاه بنذاز ببین متوجه میشی

http://stackoverflow.com/questions/3291913/linq-select-certain-cell-in-datagridview-depending-on-other-cell-in-row

setareh2013
جمعه 24 خرداد 1392, 10:40 صبح
با تشکر از شما
این طوری نوشته بود :
var sel2 = from r in multiContactLookup.Rows.Cast<DataGridViewRow>()
where r.Cells[0].Value is true select r.Cells[4].Value;
فقط نمی دونم به جای این .Cast<DataGridViewRow چی بنویسم .

ali_md110
جمعه 24 خرداد 1392, 13:24 عصر
سلام

نیاز به حلقه for برای جمع در linq ندارید
کد زیر جمع پرداختیهای یک حساب که با AccID==1 فیلتر شده نشون میده اگر خواستید فیلترهای دیگه بکار ببرید قسمت where میتونید استفاده کنید

DataClasses1DataContext dc = new DataClasses1DataContext();
var query1 = (from p in dc.PaymentTables
where p.AccID == 1

select p.Price_مبلغ).Sum();
MessageBox.Show(query1.Value.ToString());

setareh2013
جمعه 24 خرداد 1392, 22:53 عصر
آخه قراره مقدار salaryمثلا سطر یک تا 10 که مربوط به یک نفر است با هم جمع بسته شود و نتیجه نشان داده شود .