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 事件中调用这个方法。

C# TreeView 读取 SQL 字段作为节点并去重,显示关联数据到 DataGridViews

原文地址: https://www.cveoy.top/t/topic/oiBa 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录