C# TreeView 读取 SQL 字段作为节点并去重,显示关联数据到 DataGridViews
C# TreeView 读取 SQL 字段作为节点并去重,显示关联数据到 DataGridViews
本文介绍使用 C# 代码从 SQL 数据库中读取字段并去重,将其作为 TreeView 控件的节点。当用户选择二级节点时,将对应其他 8 个字段分别显示到两个 DataGridViews 中。
1. 读取 SQL 字段并去重
可以使用以下代码从 SQL 数据库中读取字段并去重:
// 连接数据库并查询数据
SqlConnection conn = new SqlConnection(connectionString);
conn.Open();
string query = "SELECT DISTINCT Category FROM MyTable";
SqlCommand cmd = new SqlCommand(query, conn);
SqlDataReader reader = cmd.ExecuteReader();
// 遍历结果并添加到 TreeView 中
while (reader.Read())
{
string category = reader.GetString(0);
treeView1.Nodes.Add(category);
}
// 关闭连接和读取器
reader.Close();
conn.Close();
这里假设需要读取名为 'MyTable' 的表中的 'Category' 字段,并将其添加到 TreeView 控件的根节点中。
2. 点选二级节点并显示其他 8 个字段
可以使用以下代码在 TreeView 中添加二级节点,并根据节点的选择来显示对应的字段:
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
// 清空 DataGridView 中的数据
datGridView1.Rows.Clear();
datGridView2.Rows.Clear();
// 如果选择了二级节点
if (e.Node.Level == 1)
{
// 从数据库中查询其他 8 个字段
SqlConnection conn = new SqlConnection(connectionString);
conn.Open();
string query = "SELECT Field1, Field2, Field3, Field4 FROM MyTable WHERE Category = @Category";
SqlCommand cmd = new SqlCommand(query, conn);
cmd.Parameters.AddWithValue("@Category", e.Node.Text);
SqlDataReader reader = cmd.ExecuteReader();
// 遍历结果并添加到 DataGridView 中
while (reader.Read())
{
dataGridView1.Rows.Add(reader.GetString(0), reader.GetString(1));
dataGridView2.Rows.Add(reader.GetString(2), reader.GetString(3));
}
// 关闭连接和读取器
reader.Close();
conn.Close();
}
}
这里假设需要查询名为 'MyTable' 的表中的 'Field1' 到 'Field4' 字段,并根据 TreeView 中选择的二级节点的 'Category' 值来筛选结果。然后将查询结果分别添加到两个 DataGridView 控件中。需要在 TreeView 控件的 AfterSelect 事件中调用这个方法。
原文地址: https://www.cveoy.top/t/topic/oiBa 著作权归作者所有。请勿转载和采集!