【发布时间】:2021-09-03 07:00:19
【问题描述】:
每当我尝试从treeview 获取值时,我在Get Data 按钮上从数据库中获取数据并尝试通过选中treeview 节点的复选框将其显示在datagridview 上,它不会显示datagridview Search 按钮上的该节点的详细信息。
Treeview 在Get Data 按钮上从数据库中获取数据后:
所以,我现在想要的是,每当我检查treeview 节点然后单击Search 按钮时,它必须在datagridview 中显示该节点的所有详细信息。
我的这个Winform的代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace My_Work
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Get_Data_Click(object sender, EventArgs e)
{
string conStr = "Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Data;Data Source=MY-PC";
SqlConnection con = new SqlConnection(conStr);
con.Open();
string query = "select ItemNo,UnitePrice from Product_Item";
SqlCommand cmd = new SqlCommand(query, con);
SqlDataReader sdr = cmd.ExecuteReader();
while (sdr.Read())
{
TreeNode n = new TreeNode(sdr["ItemNo"].ToString());
treeView1.Nodes.Add(n);
n.Nodes.Add(sdr["UnitePrice"].ToString());
}
con.Close();
}
private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
string conStr = "Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Data;Data Source=MY-PC";
SqlConnection con = new SqlConnection(conStr);
con.Open();
string nodeName = e.Node.ToString().Replace("TreeNode: ", string.Empty);
if (e.Node.Parent != null)
{
string q = "select * from Product_Item where UnitePrice='" + nodeName + "'";
SqlCommand cmd = new SqlCommand(q, con);
SqlDataAdapter sda = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
sda.Fill(dt);
con.Close();
dataGridView1.DataSource = dt;
}
}
private void Search_Click(object sender, EventArgs e)
{
string conStr = "Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Data;Data Source=MY-PC";
SqlConnection con = new SqlConnection(conStr);
con.Open();
if(treeView1.CheckBoxes == true)
{
string nodeCheck = treeView1.CheckBoxes.ToString();
string q = "select * from Product_Item where ItemNo='" + nodeCheck + "'";
SqlCommand cmd = new SqlCommand(q, con);
SqlDataAdapter sda = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
sda.Fill(dt);
con.Close();
dataGridView1.DataSource = dt;
}
}
}
}
这是我想要获取检查节点详细信息但无法获取该节点详细信息的代码。
private void Search_Click(object sender, EventArgs e)
{
string conStr = "Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Data;Data Source=MY-PC";
SqlConnection con = new SqlConnection(conStr);
con.Open();
if(treeView1.CheckBoxes == true)
{
string nodeCheck = treeView1.CheckBoxes.ToString();
string q = "select * from Product_Item where ItemNo='" + nodeCheck + "'";
SqlCommand cmd = new SqlCommand(q, con);
SqlDataAdapter sda = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
sda.Fill(dt);
con.Close();
dataGridView1.DataSource = dt;
}
}
数据库表Product_Item:
【问题讨论】:
标签: c# winforms search treeview