+1 امتیاز

با سلام

میخواستم یک کنترل TreeNode بذارم روی فرم و نام جدول های یک دیتابیس و فیلدهای هر جدول رو در این کنترل نمایش بدم

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

سورس کد :

String strConn = "server=.;initial catalog=shz;integrated security=true;";
                SqlConnection Connect = new SqlConnection(strConn);

                SqlDataAdapter daTbl = new SqlDataAdapter("Select DISTINCT tblName,tblDesc FROM viewGetTblDesc Tbl", Connect);
                DataTable dtTbl = new DataTable();

                SqlDataAdapter daClm = new SqlDataAdapter("Select * FROM viewGetTblDesc Clm WHERE tblName=@tblName", Connect);
                DataTable dtClm ;//= new DataTable();

                Connect.Open();
                daTbl.Fill(dtTbl);

                foreach (DataRow drTbl in dtTbl.Rows)
                {
                    TreeNode tn = new TreeNode();
                    tn.Name = drTbl["tblName"].ToString();
                    tn.Text = drTbl["tblDesc"].ToString();
                    tn.Tag = drTbl["tblName"].ToString();

                    dtClm = new DataTable();
                    daClm.SelectCommand.Parameters.AddWithValue("@tblName", drTbl["tblName"].ToString());
                    daClm.Fill(dtClm);

                    foreach (DataRow drClm in dtClm.Rows)
                    {
                        TreeNode child = new TreeNode();
                        child.Name = drClm["clmName"].ToString();
                        child.Text = drClm["clmDesc"].ToString();
                        child.Tag = drClm["tblName"].ToString();
                        tn.Nodes.Add(child);
                    }
                    treeView1.Nodes.Add(tn);

                    daClm.SelectCommand.Parameters.Clear();
                    dtClm.Rows.Clear();
                }
                Connect.Close();

 

1 پاسخ

+1 امتیاز
سلام

به نظر من شما اگه دیتاتیبل رو در هر قسمت که نیاز دارین جدا تعرف کنین مشکلتون حل بشه چون منم یه همچین مشکلی داشتم یا اینکه هر بار دیتاتیبل رو خالی کنید

بازم نظرات استادان عزیز شاید بهتر از نظر من باشه
ممنون از پاسختون

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

با توجه به اینکه تعداد جدول های دیتابیس من ثابت نیست و ممکنه به مرور زمان کم و زیاد بشه بنابراین مجبور شدم از حلقه foreach استفاده کنم تا بتونم همه جدول ها و همه فیلدهای جدول ها رو بیارم روی TreeNode
توسط (121 امتیاز) 2 5
سوال جدید

2,337 سوال

2,871 پاسخ

3,725 دیدگاه

3,919 کاربر

دسته بندی ها

...