Hi Fenil,
To display the filtered record id DataGridView you need to assign DataTable/DataSet as DataSource for DataGridView.
Check this example. Now please take its reference and correct your code.
By refering the above article i have created the example.
Code
C#
private void Form1_Load(object sender, EventArgs e)
{
// Populate DataGridView.
dataGridView1.DataSource = GetData("");
// Populate TreeViewNode.
TreeNode node = new TreeNode("UK");
treeView1.Nodes.Add(node);
node = new TreeNode("USA");
treeView1.Nodes.Add(node);
node = new TreeNode("Canada");
treeView1.Nodes.Add(node);
}
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
if (treeView1.SelectedNode != null)
{
textBox1.Text = treeView1.SelectedNode.Text;
}
dataGridView1.DataSource = GetData(treeView1.SelectedNode.Text);
}
private DataTable GetData(string country)
{
string query = "SELECT CustomerID, ContactName, Country FROM Customers";
query += " WHERE Country = @Country";
query += " OR ISNULL(@Country, '') = ''";
string constr = @"Data Source=.;Initial Catalog=Northwind;User ID=sa;Password=pass@123";
using (SqlConnection con = new SqlConnection(constr))
{
using (SqlCommand cmd = new SqlCommand(query, con))
{
cmd.Parameters.AddWithValue("@Country", country);
using (SqlDataAdapter sda = new SqlDataAdapter(cmd))
{
DataTable dt = new DataTable();
sda.Fill(dt);
return dt;
}
}
}
}
VB.Net
Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
dataGridView1.DataSource = GetData("")
Dim node As TreeNode = New TreeNode("UK")
treeView1.Nodes.Add(node)
node = New TreeNode("USA")
treeView1.Nodes.Add(node)
node = New TreeNode("Canada")
treeView1.Nodes.Add(node)
End Sub
Private Sub treeView1_AfterSelect(ByVal sender As Object, ByVal e As TreeViewEventArgs)
If treeView1.SelectedNode IsNot Nothing Then
textBox1.Text = treeView1.SelectedNode.Text
End If
dataGridView1.DataSource = GetData(treeView1.SelectedNode.Text)
End Sub
Private Function GetData(ByVal country As String) As DataTable
Dim query As String = "SELECT CustomerID, ContactName, Country FROM Customers"
query += " WHERE Country = @Country"
query += " OR ISNULL(@Country, '') = ''"
Dim constr As String = "Data Source=.;Initial Catalog=Northwind;User ID=sa;Password=pass@123"
Using con As SqlConnection = New SqlConnection(constr)
Using cmd As SqlCommand = New SqlCommand(query, con)
cmd.Parameters.AddWithValue("@Country", country)
Using sda As SqlDataAdapter = New SqlDataAdapter(cmd)
Dim dt As DataTable = New DataTable()
sda.Fill(dt)
Return dt
End Using
End Using
End Using
End Function
Screenshot
