C# treeview读取sql字段作为节点并去重然后点选二级节点再把对应的其他8个字段在2个不同的datagridview分别各显示4各不同字段
下面是可能的实现:
- 读取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控件的根节点中。
- 点选二级节点并显示其他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事件中调用这个方法
原文地址: http://www.cveoy.top/t/topic/fyMi 著作权归作者所有。请勿转载和采集!