PDA

View Full Version : سوال: نسبت دادن مقدار دستور select در linq به datatable



adineh67
سه شنبه 06 دی 1390, 19:14 عصر
دوستان برنامه نویس چطور می تونم دستور select رو به datatable نسبت بدم با توجه به اینکه دارم linq کار می کنم؟

mehdi.mousavi
چهارشنبه 07 دی 1390, 12:12 عصر
دوستان برنامه نویس چطور می تونم دستور select رو به datatable نسبت بدم با توجه به اینکه دارم linq کار می کنم؟

سلام.
متوجه منظورتون نمی شم. یعنی قصد دارید تا با Select رکوردهای خاصی رو از DataTable مورد نظرتون انتخاب کنید؟ اگر اینطوره، میتونید ابتدا Row های اون DataTable رو به DataRow کست کنید، سپس Select رو روی اون اعمال کنید:

dt.Rows.Cast<DataRow>().Select(row => (int)row["myIntColumn"] == 20);

در مثال فوق، کلیه DataRow هایی که ستون myIntColumn اونها، عدد 20 هستش انتخاب میشن...
اگر منظورتون از سوال چیز دیگه ای بوده، لطفا توضیح بدید تا پاسخ بدم.

موفق باشید.

adineh67
چهارشنبه 07 دی 1390, 15:45 عصر
سلام و ممنون از پاسختون
جناب منظوره من اینی که فرمودین نیست منظورم اینه که من یه دستور select با linq نوشتم حالا چطوری حاصلشو بدم به datatable؟

mehdi.mousavi
چهارشنبه 07 دی 1390, 23:43 عصر
سلام و ممنون از پاسختون جناب منظوره من اینی که فرمودین نیست منظورم اینه که من یه دستور select با linq نوشتم حالا چطوری حاصلشو بدم به datatable؟

آهان... پس یک Select ای نوشته اید، حالا میخواهید اونو به DataTable تبدیل کنید. برای اینکار، می تونید بدین شکل عمل کنید:

using (DataClasses1DataContext db = new DataClasses1DataContext())
{
db.Addresses.ToList().ForEach(addr =>
{
DataRow row = dt.NewRow();
row["Street1"] = addr.Street1;
row["CountryRegion"] = addr.CountryRegion;
dt.Rows.Add(row);
});
}


با فرض اینکه DataTable جایی تعریف شده و ستونهای مورد نظر نیز در اون وجود داره. اما اگر یک روش کلی برای انجام اینکار می خواهید، می تونید بدین روش عمل کنید (http://unboxedsolutions.com/sean/archive/2009/06/06/15961.aspx).

موفق باشید.