Hi haider6.9,
Please refer below sample.
Namespaces
C#
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Windows.Forms;
VB.Net
Imports System.Data.SqlClient
Code
C#
TreeNode parentNode = null;
static int selectedNode;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
string str = @"Data Source=.;Initial Catalog=Test;UID=sa;PWD=pass@123";
SqlConnection conn = new SqlConnection(str);
string query = "SELECT ID,NODEDESC,NODELEVEL FROM cascading WHERE NODELEVEL=0";
SqlDataAdapter da = new SqlDataAdapter(query, conn);
DataTable dt = new DataTable();
conn.Open();
da.Fill(dt);
foreach (DataRow dr in dt.Rows)
{
parentNode = Treeview1.Nodes.Add(dr["NODEDESC"].ToString());
PopulateTreeView(Convert.ToInt32(dr["ID"].ToString()), parentNode);
}
Treeview1.LineColor = Color.Red;
Treeview1.ExpandAll();
}
private void PopulateTreeView(int parentId, TreeNode parentNode)
{
string str = @"Data Source=.;Initial Catalog=Test;UID=sa;PWD=pass@123";
string query = "SELECT ID,NODEDESC,NODELEVEL FROM cascading WHERE NODELEVEL=" + parentId + "";
SqlConnection con = new SqlConnection(str);
SqlDataAdapter dachildmnuc = new SqlDataAdapter(query, con);
DataTable dtchildc = new DataTable();
dachildmnuc.Fill(dtchildc);
TreeNode childNode;
foreach (DataRow dr in dtchildc.Rows)
{
if (parentNode == null)
{
childNode = Treeview1.Nodes.Add(dr["NODEDESC"].ToString());
}
else
{
childNode = parentNode.Nodes.Add(dr["NODEDESC"].ToString());
}
PopulateTreeView(Convert.ToInt32(dr["ID"].ToString()), childNode);
}
}
private void Save(object sender, EventArgs e)
{
string constr = @"Server=.;DataBase=Test;UID=sa;PWD=pass@123";
using (SqlConnection con = new SqlConnection(constr))
{
using (SqlCommand cmd = new SqlCommand("INSERT INTO Books_In(Book_No,Book_Date,Subject,Abstr,ID) VALUES(@book_no,@book_date,@subject,@abstr,@id_cascading)", con))
{
cmd.Parameters.AddWithValue("@book_no", txtBookNo.Text);
cmd.Parameters.AddWithValue("@book_date", txtBookDate.Text);
cmd.Parameters.AddWithValue("@subject", txtSubject.Text);
cmd.Parameters.AddWithValue("@abstr", txtAbstr.Text);
cmd.Parameters.AddWithValue("@id_cascading", selectedNode);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
}
}
private void Treeview1_AfterSelect(object sender, TreeViewEventArgs e)
{
string connectionString = @"Data Source=.;Initial Catalog=Test;UID=sa;PWD=pass@123";
SqlConnection con = new SqlConnection(connectionString);
string Sequel = "SELECT ID FROM cascading WHERE NODEDESC=@Desc";
SqlCommand cmd = new SqlCommand(Sequel, con);
cmd.Parameters.AddWithValue("@Desc", e.Node.Text);
con.Open();
selectedNode = Convert.ToInt32(cmd.ExecuteScalar());
con.Close();
}
VB.Net
Private parentNode As TreeNode = Nothing
Shared selectedNode As Integer
Public Sub New()
InitializeComponent()
End Sub
Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
Dim str As String = "Data Source=.;Initial Catalog=Test;UID=sa;PWD=pass@123"
Dim conn As SqlConnection = New SqlConnection(str)
Dim query As String = "SELECT ID,NODEDESC,NODELEVEL FROM cascading WHERE NODELEVEL=0"
Dim da As SqlDataAdapter = New SqlDataAdapter(query, conn)
Dim dt As DataTable = New DataTable()
conn.Open()
da.Fill(dt)
For Each dr As DataRow In dt.Rows
parentNode = Treeview1.Nodes.Add(dr("NODEDESC").ToString())
PopulateTreeView(Convert.ToInt32(dr("ID").ToString()), parentNode)
Next
Treeview1.LineColor = Color.Red
Treeview1.ExpandAll()
End Sub
Private Sub PopulateTreeView(ByVal parentId As Integer, ByVal parentNode As TreeNode)
Dim str As String = "Data Source=.;Initial Catalog=Test;UID=sa;PWD=pass@123"
Dim query As String = "SELECT ID,NODEDESC,NODELEVEL FROM cascading WHERE NODELEVEL=" & parentId & ""
Dim con As SqlConnection = New SqlConnection(str)
Dim dachildmnuc As SqlDataAdapter = New SqlDataAdapter(query, con)
Dim dtchildc As DataTable = New DataTable()
dachildmnuc.Fill(dtchildc)
Dim childNode As TreeNode
For Each dr As DataRow In dtchildc.Rows
If parentNode Is Nothing Then
childNode = Treeview1.Nodes.Add(dr("NODEDESC").ToString())
Else
childNode = parentNode.Nodes.Add(dr("NODEDESC").ToString())
End If
PopulateTreeView(Convert.ToInt32(dr("ID").ToString()), childNode)
Next
End Sub
Private Sub Save(ByVal sender As Object, ByVal e As EventArgs) Handles button1.Click
Dim constr As String = "Server=.;DataBase=Test;UID=sa;PWD=pass@123"
Using con As SqlConnection = New SqlConnection(constr)
Using cmd As SqlCommand = New SqlCommand("INSERT INTO Books_In(Book_No,Book_Date,Subject,Abstr,ID) VALUES(@book_no,@book_date,@subject,@abstr,@id_cascading)", con)
cmd.Parameters.AddWithValue("@book_no", txtBookNo.Text)
cmd.Parameters.AddWithValue("@book_date", txtBookDate.Text)
cmd.Parameters.AddWithValue("@subject", txtSubject.Text)
cmd.Parameters.AddWithValue("@abstr", txtAbstr.Text)
cmd.Parameters.AddWithValue("@id_cascading", selectedNode)
con.Open()
cmd.ExecuteNonQuery()
con.Close()
End Using
End Using
End Sub
Private Sub Treeview1_AfterSelect(sender As System.Object, e As System.Windows.Forms.TreeViewEventArgs) Handles Treeview1.AfterSelect
Dim connectionString As String = "Data Source=.;Initial Catalog=Test;UID=sa;PWD=pass@123"
Dim con As SqlConnection = New SqlConnection(connectionString)
Dim Sequel As String = "SELECT ID FROM cascading WHERE NODEDESC=@Desc"
Dim cmd As SqlCommand = New SqlCommand(Sequel, con)
cmd.Parameters.AddWithValue("@Desc", Treeview1.SelectedNode.Text)
con.Open()
selectedNode = Convert.ToInt32(cmd.ExecuteScalar())
con.Close()
End Sub
Screenshot
