PDA

View Full Version : سوال: سئوال در مورد Tree View



hmariya
شنبه 21 آذر 1388, 11:46 صبح
با سلام. من یک کد نوشتم برای پر کردن نودهای TreeView از طریق بانک اطلاعاتی اما اطلاعات رو درست انتقال نمی ده فکر می کنم اشکال تو حلقه های که ایجاد کردم هست اما نمی دونم کجاش گیر داره... کسی می تونه کمک کنه؟

اینم کد برنامه:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;
using System.Collections;
using System.Data;

namespace SaapStock
{
public partial class frmSlcCode : Form
{
[STAThread]
static void Main2()
{
System.Windows.Forms.Application.Run(new frmSlcCode());
}

#region " Código generado por el Diseñador de Windows Forms "
#endregion
public frmSlcCode()
{
InitializeComponent();
}
private void frmSlcCode_Load(object sender, EventArgs e)
{
//Conect to db & Create Data Source
try
{
string strCon;
SqlConnection con;
strCon = "Data Source=.;Initial Catalog=SaapStock;Integrated Security=True";
con = new SqlConnection(strCon);
con.Open();
string strSql;
string strSqlCode;
strSql = "Select * FROM TreeCode";
DataSet dst = new DataSet();

treeView1.Nodes.Clear();
SqlDataAdapter daSlcCode;

daSlcCode = new SqlDataAdapter(strSql, con);
int i;
int j;
string stCode;
string stDtlCode;
int r;


daSlcCode.Fill(dst, "TreeCode");
r = dst.Tables["TreeCode"].Rows.Count - 1;
for (i = 0; i <= r; i++)
{
stCode = "";
stCode=dst.Tables["TreeCode"].Rows[i]["strCodeName"].ToString();
treeView1.Nodes.Add(stCode);
treeView1.Nodes[i].ImageIndex = 0;
SqlDataAdapter daSlcCode2;
string strSql2;
strSql2 = "";
strSql2="select * from TreeCode where strCodeName=\'" + stCode + "\'";
daSlcCode2 = new SqlDataAdapter(strSql2,con);
dst.Tables["TreeCode"].Clear();
daSlcCode.Fill(dst, "TreeCode");
dst.Tables["TreeCode"].Clear();
daSlcCode2.Fill(dst, "TreeCode");
dataGridView1.DataBindings.Add(new Binding("DataSource", dst, "TreeCode"));
j = 0;
for (j = 0; j <= dst.Tables["TreeCode"].Rows.Count-1; j++)

{
//once we have the records we fill the respective child node in the control
stDtlCode = dst.Tables["TreeCode"].Rows[j]["strCodeValue"].ToString();
TreeNode dtlCNode;
dtlCNode = treeView1.Nodes[i];
dtlCNode.Nodes.Add(stDtlCode);
//asigne a image
//then we expand the nodes so we can show the child nodes
dtlCNode.Expand();
}
}
con.Close();
}
catch
{
// MessageBox.Show("Error");
return;
}
}
private object Err()
{
throw new NotImplementedException();
}
private void button1_Click(object sender, EventArgs e)
{
dataGridView1.DataBindings.Clear();
string strCon;
SqlConnection con;
strCon = "Data Source=.;Initial Catalog=SaapStock;Integrated Security=True";
con = new SqlConnection(strCon);
con.Open();
string strSql;
strSql = "Select * FROM TreeCode";
SqlDataAdapter dat;
DataSet dst = new DataSet();
dat = new SqlDataAdapter(strSql, con);
dat.Fill(dst, "TreeCode");
dataGridView1.DataBindings.Add(new Binding("DataSource", dst, "TreeCode"));

}
private void treeViewP_AfterSelect(object sender, TreeViewEventArgs e)
{
}
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
}
}
}

SHM313
یک شنبه 22 آذر 1388, 11:42 صبح
سلام لطفا مشکلتون رو دقیق تر بگین.

tabatabaeefar
یک شنبه 22 آذر 1388, 12:48 عصر
سلام
اگه حال داشتي يه سري به برنامه اي كه توي اين تاپيك گذاشتم بزن
با vb نوشتم اما تقريبا كامل شده.
http://barnamenevis.org/forum/showthread.php?t=156060

hmariya
سه شنبه 24 آذر 1388, 21:06 عصر
مشکل در حلقه ای که ایجاد کردم هست... به این صورت که تو فیلد پدر دیتابیس 2 مقدار دارم و به ازای این فیلد در جدول فرزند چند مقدار (پدر اول 5 فرزند- پدر دوم 2 فرزند) چیزی که تو درخت نمایش میده پدر اول با 5 فرزندش ئه به علاوه مقدار پدر اول برای نود دوم بدون نمایش فرزندان


Database

Field 1 Filed2
-------- --------
A xx
A xy
A xz
A yz
A zz
B kl
B jh



Tree View

A
xx----
xy----
xz----
yz----
zz----
A



هر کاری روی پر کردن data Adaptor ها و تغییر دادن حلقه های For کردم برای اصلاحش، بی نتیجه بوده...