PDA

View Full Version : کمک در خواندن مقدایر از پایگاه داده



m.yazdian
یک شنبه 22 دی 1387, 17:20 عصر
دوستان سلام
من می خوام منو و زیر منو را از پایگاه داده بخونم ولی نمی تونم پایگاه داده من به این شکل هستش

http://66.197.163.222/database.gif



<ul>
<li>Home
<ul>
<li>home 1
<ul>
<li>home 1-1</li>
<li>home 1-2
<ul>
<li>home 1-2-1</li>
<li>home 1-2-1</li>
</ul>
</li>
<li>home 1-3</li>
</ul>
</li>
</ul>
</li>
<li>About</li>
<li>Contact</li>
</ul>


خواهش میکنم اگر کسی اطلاعاتی دارد لطفا دریغ نکند چون بنده کارم بدجوری گیر کرد :گریه::عصبانی++:

smrb59
یک شنبه 22 دی 1387, 19:31 عصر
من که برای منوی اصلی یه جدول و برای زیر منوها یه جدول دیگه درست میکنم یه کلید خارجی تو جدول زیر منوها قرار میدم تا مشخص بشه چه زیر منوهایی برای کدوم منوهاست یه فیلدم از نوع بیت میزارم برای نشون دادن یا ندادن منوها که مدیر کاملا آزاد باشه که دیگه کاملا داینامیک باشه.

m.yazdian
دوشنبه 23 دی 1387, 07:44 صبح
من که برای منوی اصلی یه جدول و برای زیر منوها یه جدول دیگه درست میکنم یه کلید خارجی تو جدول زیر منوها قرار میدم تا مشخص بشه چه زیر منوهایی برای کدوم منوهاست یه فیلدم از نوع بیت میزارم برای نشون دادن یا ندادن منوها که مدیر کاملا آزاد باشه که دیگه کاملا داینامیک باشه.


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

milade
دوشنبه 23 دی 1387, 12:19 عصر
سلام
تو این سایت بسرچ:aspalliance.com
100% مطمعنم که یه مقاله در همین زمینه دیدم
موفق باشی

kiosksoft
دوشنبه 23 دی 1387, 12:19 عصر
دوست عزیز این کد هارو نگاه کنید, فقط اسم فیلدهارو طبق جدول خودتون تغییر دهید.

متوجه نشدید بگید که توضیح بدم. خروجی این برنامه همان چارتی هست که به آن بصورت یک فایل xml اشاره کردید.

این تابع رو فراخوانی کنید:


PopulateRootLevel();




privatevoid PopulateRootLevel()
{
DataTable dt = newDataTable();
TreeView2.Nodes.Clear();
string sql = "select ChartTempID,ChartTempName,(select count(*) FROM ChartTempTbl WHERE ChartTempParentID = sc.ChartTempID) childnodecount FROM ChartTempTbl sc where ChartTempParentID = 0";
DatabaseClasses dbClass = newDatabaseClasses();
dt = dbClass.GetDTWithSql(sql);
PopulateNodes(dt, TreeView2.Nodes);

}
privatevoid PopulateSubLevel(int parentid, TreeNode parentNode)
{
DataTable dt = newDataTable();
string sql = "select ChartTempID,ChartTempName,(select count(*) FROM ChartTempTbl WHERE ChartTempParentID=sc.ChartTempID) childnodecount FROM ChartTempTbl sc where ChartTempParentID=" + parentid.ToString();
DatabaseClasses dbClass = newDatabaseClasses();
dt = dbClass.GetDTWithSql(sql);
PopulateNodes(dt, parentNode.ChildNodes);
}
privatevoid PopulateNodes(DataTable dt, TreeNodeCollection nodes)
{
foreach (DataRow dr in dt.Rows)
{
TreeNode tn = newTreeNode();
tn.Text = dr["ChartTempName"].ToString();
tn.Value = dr["ChartTempID"].ToString();
tn.NavigateUrl = "ChartDetail.aspx?ChartID=" + tn.Value;
nodes.Add(tn);
tn.PopulateOnDemand = ((int)(dr["childnodecount"]) > 0);
}
}