PDA

View Full Version : اتصال TreeView به دیتا بیس



seniamail
یک شنبه 04 اسفند 1387, 09:50 صبح
سلام
چطور میشه TreeView رو به فیلد خاصی از دیتا بیس ارتباط داد؟

seniamail
سه شنبه 06 اسفند 1387, 15:12 عصر
اگر نیاز به توضیح بیشتر است لطفا بگید

unique1984
سه شنبه 06 اسفند 1387, 23:07 عصر
سلام
منم دقیقا به چنین چیزی نیاز دارم. دوستان اگه اطلاعات دارید ، دریغ نفرمایید.

linux
سه شنبه 06 اسفند 1387, 23:50 عصر
سلام
منم دقیقا به چنین چیزی نیاز دارم. دوستان اگه اطلاعات دارید ، دریغ نفرمایید.
باید کد بنویسید.مثل بقیه کنترل ها نمی توانید همینطوری بایند کنید

mehrzad007
چهارشنبه 07 اسفند 1387, 07:01 صبح
منم يه مدته دنبال همين موردم !
يكي از راههايي كه به نظر منم رسيده همين مورديه كه دوستمون گفتن . كه صد البته يه خورده مشكله .
اما راه ديگه استفاده از كمپونت هاي ديگه است . اين دوتا كمپونت رو پيدا كردم . كه تو مشخصاتش نوشته امكان بايند به ديتا بيس رو دارند . هنوز خودم تست نكردم !
http://www.obout.com
http://www.essentialobjects.com
اولي مجانيه و دومي 150 دلار قيمت داره . كسي تست كرد نتيجه رو بنويسه اينجا .

hasan_esfahan
چهارشنبه 07 اسفند 1387, 11:03 صبح
این یک فایل ساده است

منبع سایت codeproject.com

alihassanabadi
پنج شنبه 08 اسفند 1387, 20:35 عصر
سلام
نمیدونم سوال شما رو چه جوری جواب بدم آخه راههای مختلفی داره
اگه فقط میخوای محتوای یه فیلد رو به treeview اضافه کنی که راههای زیادی هست یکیشو میگم
ابتدا یک bindingsource از toolbox به پروژت اظافه کن
حالا از خصوصیات مربوط به 1bindingsource روی دیتا سورس(datasource) کلیک کنید وAdd Project Data Source رو بزنید از پنجره باز شده database رو انتخاب کنید ودکمه next رو بزن
حالا new connection رو کلیک کنید در این پنجره میتونی با کلیک بر روی دکمه change نوع پایگاه دادتو انتخاب کنی
بعد از زدن دکمه چنج در پنجره بعد چون میخوایم از اکسس استفاده کنیم
Microsoft Access Database File رو انتخاب وok رو بزنید
حالا میتونی روی دکمه browse کلیک کنی و پایگاه دادتو که mdb است انتخاب کنید
در پایان با زدن دکمه ok پس از انتخاب پایگاه داده دو بار next رو بزن سپس جدول دلخواه
رو انتخاب کنی
که دقیقا واسه sql server هم این کار رو میکنیم
در پایان finish رو بزنید با این کار یه dataset و یه tableadapter به پروژه اضافه میشه که اسم پایگاه دادت اولشونه مثل aliDataSet و یا aliTableAdapter
دوباره از properties مربوط به bindingsource1 ------datamembere ش رو به
جدولت ربط بده
با این کار یه همچین کدی به page_load اضافه میشه

// TODO: This line of code loads data into the 'aLIDataSet.ALI' table. You can move, or remove it, as needed.

this.aLITableAdapter.Fill(this.aLIDataSet.ALI);
حالا تو یه باتون این کد رو بنویس

DataTable tab;
tab = aLIDataSet.Tables["table name"];
treeView1.Nodes.Add(tab.Rows[0]["field name"].ToString());

داخل کروشه جلوی rows[] میتونی شماره ردیف روبنویسی مثلا

treeView1.Nodes.Add(tab.Rows[2]["tel"].ToString());





محتویات سومین ردیف از فیلد تل رو به تری ویو اضافه میکنه



خدای من هرگز نگویمت که بیا دست من بگیر

عمریست گرفته ای مبادا رها کنی

hasan_esfahan
پنج شنبه 08 اسفند 1387, 23:45 عصر
دوست عزیز alihassanabadi
این روشی که که شما می فرمایید تنها یک ستون از یک رکورد را اضافه می کند این گونه نیست در صورتی که دوستان یک ستون کامل را نیاز داشتند

hasan_esfahan
جمعه 09 اسفند 1387, 00:00 صبح
این کد یک ستون کامل را را به treeview اضافه می کند


SqlConnection SqlCon = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\Database1.mdf;Integrated Security=True;User Instance=True");
SqlDataAdapter ad = new SqlDataAdapter("Select * from tb1", SqlCon);
DataSet ds = new DataSet();
ad.Fill(ds);

treeView1.Nodes.Clear();
foreach (DataRow dr in ds.Tables[0].Rows)
{
TreeNode tnParent = new TreeNode();
tnParent.Text = dr["Code"].ToString();
treeView1.Nodes.Add(tnParent);
}

alihassanabadi
یک شنبه 11 اسفند 1387, 12:27 عصر
این کد یک ستون کامل را را به treeview اضافه می کند


SqlConnection SqlCon = newSqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\Database1.mdf;Integrated Security=True;User Instance=True");
SqlDataAdapter ad = newSqlDataAdapter("Select * from tb1", SqlCon);
DataSet ds = newDataSet();
ad.Fill(ds);

treeView1.Nodes.Clear();
foreach (DataRow dr in ds.Tables[0].Rows)
{
TreeNode tnParent = newTreeNode();
tnParent.Text = dr["Code"].ToString();
treeView1.Nodes.Add(tnParent);
}


سلام تشكر از نظرتون
ولي گفته بود اتصال ديتا ست به تري ويو نگفته بود تمام فيلدهاي ركورد

من كه گفتم
[;()CODE]treeView1.Nodes.Add(tab.Rows[0]["field name"].ToString[/CODE]
ميتونيم به جاي fild name نام هر فيلدي رو بنويسيم مثل



treeView1.Nodes.Add(tab.Rows[0]["name"].ToString();
treeView1.Nodes.Add(tab.Rows[0]["family"].ToString();
treeView1.Nodes.Add(tab.Rows[0]["address"].ToString();

گرچه روش شما هم درسته
با تشكر
سعادت ديگران بخشي از خوشبختي ماست

seniamail
دوشنبه 12 اسفند 1387, 21:39 عصر
سلام alihassanabadi
دوست عزیزمون hasan_esfahan درست متوجه شدن
از هر دوی شما ممنونم
کارم راه افتاد

behnam_fagih
سه شنبه 13 اسفند 1387, 08:45 صبح
دوستان در تمامی موارد بالا فقط یک فیلد به یک گره اختصاص یافته است. در حالی که TreeView مانند ComboBox دارای فسمت Id ,Text میباشد. یعنی در TreeView باید به هر گره یه Id و یک Text نسبت دهید. که Id برای کار با آن گره بوده و Text نیز برای کاربر نمایش داده میشود. البته در جدول مربوطه نیز باید فیلدی با عنوان گره پدر اضافه شود، تا برای هر گره، گره پدر نیز مشحص شود. بدیهی است که فیلد پدر برای گره اصلی که پدر تمامی گره ها می باشد خالی (NULL) می باشد.
در ضمن مشحص کنید منظور شما TreeView در وب است یا WindowsApplication

با تشکر

elahe1364
چهارشنبه 14 اسفند 1387, 06:05 صبح
آقای hassan-esfahan واقعا ممنون از جواب خوبتون
یه سوال؟
من 5 تا جدول دارم که هر کدوم زیر سطح جدول قبلیه یعنی من میخوام 5 سطح تویtreeview داشته باشم که هر سطح مربوط به یه جدوله.
میتونید راهنماییم کنید؟

hasan_esfahan
چهارشنبه 14 اسفند 1387, 17:22 عصر
برای چند سطری که شکل آن در زیر است شما باید یاز یک node ایجاد کنید سپس node های زیری را به این node وصل کنید و سپس به treeview اتصال دهید

در جای که کد


treeView1.Nodes.Add(tnParent);

در ج شده شما گره دیگری ایجاد نامی برای ان انتخاب نموده وسپس در اخر treeview اتصال دهید
در صورت متوجه نشدن ه صورت کامل بنده را در جریان قرار دهید تا یک سرس ایجاد و در سایت قرار دهم
و از تشکرات دوستان سپاس گذارم

elahe1364
پنج شنبه 15 اسفند 1387, 05:29 صبح
با تشکر از جوابتون
اگه وقت داشته باشید و لطف کنید یه نمونه بذارید واقعا ممنون میشم