仅仅是实现了功能,但无论结构、性能都需要再优化,先记下来吧。。。
//--------------------------------------------------------;
// 增加记录
// 2007-10-19 by sj
//--------------------------------------------------------;
private void AddRecord()
{
string Name = txtName.Text;
string ID = txtID.Text;
string PID = tv.SelectedNode.Name;
if (Name == "" || ID == "")
{
MessageBox.Show("please write something!");
return;
}
DataRow r = myDataSet.Tables["treelist2"].NewRow();
r["ID"] = ID;
r["FristChild"] = "-2";
r["NextSibling"] = "-2";
r["ChildCount"] = "100";
r["Name"] = Name;
r["PID"] = PID;
r["Tag"] = "1";
myDataSet.Tables["treelist2"].Rows.Add(r);
//OleDbCommandBuilder myCommandBuilder = new OleDbCommandBuilder(myAdapter); // 根据myDataAdapter创建相应的语句
myAdapter.Update(myDataSet, "treelist2"); // 更新数据库
// 为listview增加新项
ListViewItem newli = new ListViewItem(ID);
newli.SubItems.Add("-2");
newli.SubItems.Add("-2");
newli.SubItems.Add("100");
newli.SubItems.Add(Name);
newli.SubItems.Add(PID);
lv.Items.Add(newli);
// 为treeview增加新项
TreeNode newtn = new TreeNode();
newtn.Text = Name;
tv.SelectedNode.Nodes.Add(newtn);
}
//--------------------------------------------------------;
// 删除记录
// 说明:实际上是将数据库中某个字段的值进行更改,查询时不
// 显示
// 2007-10-22 by sj
//--------------------------------------------------------;
private void btnDelete_Click(object sender, EventArgs e)
{
for (int j = 0; j < lv.SelectedItems.Count; j++)
{
if (lv.SelectedItems[j].Checked == true)
{
string ID = lv.SelectedItems[j].SubItems[0].Text;
//MessageBox.Show(ID);
string Expression = "ID = " + "'" + ID + "'";
DataRow[] r = myDataSet.Tables["treelist2"].Select(Expression); ;
r[0][6] = "0";
OleDbCommand DeleteCommand = new OleDbCommand("Update treelist2 set Tag = '0' where ID = '" + ID + "'");
myAdapter.UpdateCommand = DeleteCommand;
myAdapter.Update(myDataSet, "treelist2"); // 更新数据库
lv.SelectedItems[j].Remove(); // 从listview中删除项
string text = tv.SelectedNode.Name;
//MessageBox.Show(text);
for (int i = 0; i < tv.SelectedNode.GetNodeCount(false); i++)
{
if (tv.SelectedNode.Nodes[i].Name == ID)
{
tv.SelectedNode.Nodes[i].Remove();
}
}
}
}
}
//--------------------------------------------------------;
// 修改记录
// 2007-10-22 by sj
//--------------------------------------------------------;
private void AlterRecord()
{
string Name = txtName.Text;
string ID = txtID.Text;
string Expression = "ID = '" + ID + "'";
DataRow[] r = myDataSet.Tables["treelist2"].Select(Expression);
for (int i = 0; i < r.Length; i++)
{
r[i][4] = Name;
}
OleDbCommand UpdateCommand = new OleDbCommand("Update treelist2 set Name = '" + Name + "' where ID = '" + ID + "'");
myAdapter.UpdateCommand = UpdateCommand;
myAdapter.Update(myDataSet, "treelist2"); // 更新数据库
lv.SelectedItems[0].SubItems[4].Text = Name;
}