Курсовая работа: Разработка баз данных "Articles" средствами платформы Microsoft.NET Framework
}
В том случае, если в дереве есть узлы, и пользователь выделил какой-либо узел левой клавишей мыши или при помощи клавиатуры, наш обработчик событий добавитьToolStripMenuItem_Click выполняет следующие действия:
if (treeView1.SelectedNode != null)
{
int id = (int)treeView1.SelectedNode.Tag;
AddNode(id);
UpdateTree();
}
Вначале он извлекает из свойства treeView1.SelectedNode.Tag идентификатор строки таблицы Tree, соответствующий выделенному узлу. Этот идентификатор записывается в данное свойство методом UpdateTree в процессе построения дерева.
Замечу, что данный идентификатор обозначает узел, являющийся родительским по отношению к создаваемому узлу. Обработчик событий добавитьToolStripMenuItem_Click передает этот идентификатор методу AddNode, а затем перерисовывает обновленное дерево методом UpdateTree:
AddNode(id);
UpdateTree();
Рассмотрим реализацию метода AddNode, служащего для добавления нового узла в дереве заголовков статей и добавления всех необходимых записей в базу данных Articles:
public void AddNode(int id)
{
Form2 dialog = new Form2();
if (DialogResult.Yes == dialog.ShowDialog())
{
sqlConnection1.Open();
try
{
SqlCommand cmd = new SqlCommand("sp_InsertNode",sqlConnection1);
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter param = cmd.Parameters.Add("RETURN_VALUE",SqlDbType.Int);
param.Direction = ParameterDirection.ReturnValue;
cmd.Parameters.Add("@parent_id", SqlDbType.Int).Value = id;
cmd.Parameters.Add("@title", SqlDbType.VarChar).Value =dialog.Title;
cmd.Parameters.Add("@weight", SqlDbType.Int).Value =dialog.Weight;
cmd.ExecuteNonQuery();