分层:
功能框
数据库:
添加右侧的分支的功能:
Modal 是实体类就不用特别说明了
首先在DAL层
public DataTable findAll()
{
List<TvType> list = new List<TvType>();
string sql = "select * from tvtype";
DataTable dt = SQLHelper.ExecuteDataTable(sql);
return dt;
}
之后在BLL层
public DataTable findAll()
{
return dal.findAll();
}
返回这个方法
{
tvlist.Nodes.Clear();
TreeNode tn = new TreeNode("全部");
tn.Tag = "4cd8c1bf-af1a-49d1-aabf-210ff9e4e46d";
tvlist.Nodes.Add(tn);
GetNode(tn, @"4cd8c1bf-af1a-49d1-aabf-210ff9e4e46d");
tvlist.Nodes[0].Expand();
}
private void GetNode(TreeNode tree,string parentId)
{
DataTable sourceData = bll.findAll();
DataView dv = new DataView(sourceData);
dv.RowFilter = "parenNodetid='" + parentId + "'";
if (dv.Count > 0)
{
foreach (DataRowView drv in dv)
{
tn = new TreeNode();
tn.Tag = drv["Nodeid"].ToString();
tn.Text = drv["Descire"].ToString();
tree.Nodes.Add(tn);
GetNode(tn, tn.Tag.ToString());
}
}
然后将showTv()加入load事件
添加分支:
在DAL层 添加SQL
string sql = "insert into tvtype(Nodeid,parenNodetid,Descire) values(@nid,@pid,@name)";
SqlParameter[] paras ={
new SqlParameter("@nid",type.NodeID),
new SqlParameter("@pid",type.ParentNodeID),
new SqlParameter("@name",type.Description)
return SQLHelper.ExecuteNonQuery(sql,paras);
}
添加窗体的代码;
TreeNode rnode;
public Addtv(string mynodename, TreeNode mynode)
{
InitializeComponent();
rnodename = mynodename;
rnode = mynode;
}
TvTypeBLL bll = new TvTypeBLL();
private void btnclose_Click(object sender, EventArgs e)
{
this.Close();
}
{
TvType tv=new TvType(){Description=txttypename.Text,NodeID=Guid.NewGuid().ToString(),
ParentNodeID=rnode.Tag.ToString()};
int count = bll.add(tv);
if (txttypename.Text != null && txttypename.Text != "")
{
if (count > 0)
{
TreeNode tn = new TreeNode();
tn.Text = txttypename.Text;
tn.Tag = tv.NodeID;
rnode.Nodes.Add(tn);
MessageBox.Show("添加成功!");
}
}
else {
MessageBox.Show("不能为空!!!");
}
TreeNode node = tvlist.SelectedNode;
string nodetxt = node.Text;
Addtv frm = new Addtv(nodetxt,node);
frm.Show();
删除功能:
DAL层:
public int delete(TvType type) {
string sql = "delete from tvtype where Nodeid=@nodeid";
SqlParameter[] paras ={
new SqlParameter("@nodeid",type.NodeID)
};
return SQLHelper.ExecuteNonQuery(sql,paras);
}
BLL:
public int delete(TvType type)
{
return dal.delete(type);
}
主窗体代码:
string typeid = tr.Tag.ToString();
TvType type = new TvType() { NodeID = typeid };
int count = bll.delete(type);
if (count > 0)
{
tr.Remove();
MessageBox.Show("删除成功!!!");
}
else {
MessageBox.Show("失败!!!");
}
修改:
DAL层
bool flag = false;
string sql = "update tvtype set Descire=@Description where nodeid=@nodeid";
SqlParameter[] pares ={
new SqlParameter("@Description",Description),
new SqlParameter("@nodeid",nodeid)
};
int count = SQLHelper.ExecuteNonQuery(sql,pares);
if(count>0){
flag = true;
return flag;
Bll层
public bool Change(string Description, string nodeid)
{
return dal.Change(Description, nodeid);
}
修改窗体:
public TreeNode node;
{
Close();
}
{
Save();
}
txttypename.Text=node.Text;
}
string name = txttypename.Text;
bool flag=bll.Change(name,node.Tag.ToString());
if(flag){
node.Text=name;
}else{
MessageBox.Show("emmmmmm 失败了!!!");
}
}
{
LoadData();
}
{
TreeNode selectNode = tvlist.SelectedNode;
Updatetv frmup = new Updatetv();
frmup.node = selectNode;
frmup.node.Tag = selectNode.Tag;
frmup.node.Text = selectNode.Text;
frmup.Show();
}