PDA

View Full Version : سوال: نمایش اطلاعات دیتابیس در treeview در EF



Son_ariyayi
پنج شنبه 08 مرداد 1394, 12:00 عصر
سلام من دوتا جدول دارم میخوام tbl_cat و Tbl_product الان داخل formProduct میخوام با یه treeview اطلاعات جدول Cat رو واکشی کنم

آمدم یه ارایه تعریف کردم

int[] catgoryId;

آمدم سطرهای جدول رو شمردم


catgoryId =new int [(from c in database.tbl_cat select c).Count()];

بعد آمدم با استفاده حلقه فور اطلاعات رو نمایش دادم داخلش


for(int i=0 ; i<(from c in database.tbl_cat select c).Count();i++) { treeView1.Nodes.Add((from name in database.tbl_cat select "name").ToString()); //catgoryId[i] = Convert.ToInt32((from id in database.tbl_cat select id).ToString());
}

الان اینطوری واسه من نمایش میده
133725

میخوام نام رو واسه ام نشون بده نمیدونم چرا اینطوری نمایش میده

بعد میخوام بر روی هرکدوم از ایتم ها در treeview کلید کردم دیتابیس براساس اییدی اون فیلتر بشه

از Ef 6 استفاده کردم

Mahmoud.Afrad
پنج شنبه 08 مرداد 1394, 15:44 عصر
کوئری که نوشتید و جایی که استفاده کردید کاملا اشتباست. توصیه میکنم یک آموزش LINQ مطالعه کنید.

اول لیست مورد نظرت رو انتخاب کن و بعد اضافه کن. ID (کلیداصلی) رو به عنوان key و Name (نام هر دسته) رو به عنوان متن نود اضافه کن.

var categories =
from c in _db.tbl_cat
select c;

foreach (var cat in categories)
{
treeView1.Nodes.Add(cat.id.ToString(), cat.name);
}


برای بدست آوردن آیدی نودی که کلیک میشه:

private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
var nodeId = e.Node.Name;
MessageBox.Show(nodeId);
}

Son_ariyayi
پنج شنبه 08 مرداد 1394, 20:04 عصر
خیلی ممنون مهندس

میگم من میخوام انتیتی فریم ورک رو یاد بگیرم باید برم linq رو اول یاد بگیرم یا نه Ado.net کار کردم قبلا گفتم برم یه راست سراغ انتیتی فریم ورک

الان برم سراغ linq ??

Mahmoud.Afrad
پنج شنبه 08 مرداد 1394, 20:42 عصر
در LinqToSql و EF برای واکشی داده ها از linq استفاده میشه. پس نباید linq رو به معنی linqtosql بدونید. همین EF رو ادامه بده.

https://msdn.microsoft.com/en-us/library/bb397926.aspx
https://msdn.microsoft.com/en-us/library/bb308959.aspx