У меня есть TreeView
, который заполняется данными из таблицы базы данных SQL Server, я хочу, чтобы вставить в него данные на основе выбранного элемента ID в базе данных, это мой код:Как получить идентификационный номер из выбранного узла treeView?
private void Form1_Load(object sender, EventArgs e)
{
TreeLoad();
}
// Connecting to Database and retieving data
private DataTable Select(int ID)
{
SqlConnection conn = new SqlConnection(@"server= M_SHAWAF\ORCHESTRATE; integrated security= true; database= FM");
conn.Open();
SqlCommand cmd = new SqlCommand("GetNodes2", conn);
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter parameter = new SqlParameter("ID", ID);
parameter.SqlDbType = SqlDbType.Int;
cmd.Parameters.Add(parameter);
SqlDataAdapter ad = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
ad.Fill(dt);
return dt;
}
//Loading the treeView1
void TreeLoad()
{
DataTable dt = Select(0);
AddNodes(dt, treeView1.Nodes);
}
//Adding nodes to treeView1
void AddNodes(DataTable dt, TreeNodeCollection coll)
{
foreach (DataRow dr in dt.Rows)
{
TreeNode node = new TreeNode();
node.Text = dr[1].ToString();
coll.Add(node);
try
{
DataTable child = Select((int)dr[0]);
if (child.Rows.Count > 0)
{
AddNodes(child, node.Nodes);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
Это таблица:
форма:
Я хочу получить EmpID
выбранного узла, когда я нажимаю insert btn (есть еще одна форма окна, у которой есть текстовое поле для нового имени).
GetNodes
хранимая процедура:
create procedure GetNodes
@ID int
as
select
e.EmpID, e.EmpName
from
Employee e
where
isnull(e.ManagerID, 0) = @ID
return
Just 4 просмотров: O: O –