下面是可能的实现:

  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控件的根节点中。

  1. 点选二级节点并显示其他8个字段

可以使用以下代码在TreeView中添加二级节点,并根据节点的选择来显示对应的字段:

private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
    // 清空DataGridView中的数据
    dataGridView1.Rows.Clear();
    dataGridView2.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字段作为节点并去重然后点选二级节点再把对应的其他8个字段在2个不同的datagridview分别各显示4各不同字段

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

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