У меня есть таблица с двумя столбцами, и я хочу, чтобы отобразить их иерархически в виде дерева с привязкой базы данных Oracle с использованием Windows Forms (.NET 4.0)C# - Создание TreeView из базы данных (Oracle) - WinForms
ORGID, PARENTID
======================
1 -
2 1
3 1
4 3
.....
Будучи ORGID родителем, а PARENTID - дочерним (который также может быть родителем).
Я попытался это:
public partial class OrgHierarchy : Form
{
DataSet ds = new DataSet();
TreeNode parentNode = null;
DataSet RunQuery(String Query)
{
DataSet ds = new DataSet();
OracleConnection con = new OracleConnection(OrgScheme.GetConnectionString());
DataTable dt = new DataTable();
OracleCommand cmd = new OracleCommand();
cmd.CommandText = Query;
cmd.CommandType = CommandType.Text;
cmd.Connection = con;
con.Open();
OracleDataAdapter da = new OracleDataAdapter(cmd);
ds = new DataSet();
da.Fill(ds);
return ds;
}
void CreateNode(TreeNode node)
{
DataSet ds = RunQuery("select orgid ,parentid ... 0 and parentid=" + node.Value +" order by parentid,orgid");
if (ds.Tables[0].Rows.Count == 0)
{
return;
}
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
TreeNode tnode = new TreeNode(ds.Tables[0].Rows[i][1].ToString(), ds.Tables[0].Rows[i][0].ToString());
tnode.SelectAction = TreeNodeSelectAction.Expand;
node.ChildNodes.Add(tnode);
CreateNode(tnode);
}
}
public OrgHierarchy()
{
InitializeComponent();
DataSet ds = RunQuery("select orgid ,parentid .... and parentid is null");
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
TreeNode root = new TreeNode(ds.Tables[0].Rows[i][1].ToString(), ds.Tables[0].Rows[i][0].ToString());
root.SelectAction = TreeNodeSelectAction.Expand;
CreateNode(root);
OrgTree.Nodes.Add(root);
}
}
}
У меня есть ряд ошибок:
Ошибка 1 'System.Windows.Forms.TreeNode' не содержит определения для 'Value' и никакой метод расширения «Значение», принимающий первый аргумент типа «System.Windows.Forms.TreeNode», может быть найден (вам не хватает.
Ошибка 2 Наилучшее перегруженное соответствие метода для 'System.Windows. Forms.TreeNode.TreeNode (строка, System.Wind ows.Forms.TreeNode []) 'имеет некоторые недопустимые аргументы
Помогите пожалуйста? Я думаю, что я использую веб-элементы управления (.Value), которые я не могу использовать с помощью WinForms.
У вас есть нуль в корневом уровне в parentID? –
@ user6002727 точно – Tiago