//合并(测试) public void merge() { List <int> parentid = new List <int>(); List <CataItem> list = new List <CataItem>(); using (var cmd = m_liteDB.CreateCommand()) { //查询所有修改过后的结点 cmd.CommandText = "SELECT id,newname,parent FROM catalog where identifying =2"; using (var reader = cmd.ExecuteReader()) { while (reader.Read()) { //组装字典 CataItem item = new CataItem(); int a = reader.GetInt32(0); string ab = reader.GetString(1); item.Id = reader.GetInt32(0); item.Name = reader.GetString(1); parentid.Add(reader.GetInt32(2)); list.Add(item); } } } LiteDB NewliteDB = new LiteDB(m_folder); NewliteDB.Open(0); using (var newcmd = NewliteDB.CreateCommand()) { for (int j = 0; j < list.Count; j++) { newcmd.CommandText = string.Format("SELECT id,name,parent FROM catalog where id='{0}'", parentid[j]); using (var updatereader = newcmd.ExecuteReader()) { if (updatereader.Read()) { using (var updatecom = NewliteDB.CreateCommand()) { updatecom.CommandText = string.Format("UPDATE catalog set name='{0}',audit='{1}' where id={2}", list[j].Name, 1, list[j].Id); updatecom.ExecuteScalar(); } } else { using (var cmd = m_liteDB.CreateCommand()) { cmd.CommandText = string.Format("SELECT id,name,parent FROM catalog where id='{0}'", parentid[j]); using (var readerparent = cmd.ExecuteReader()) { while (readerparent.Read()) { using (var addcom = NewliteDB.CreateCommand()) { addcom.CommandText = string.Format("insert into catalog(id,name,parent) values('{0}','{1}','{2}')", readerparent.GetInt32(0), readerparent.GetString(1), readerparent.GetInt32(2)); addcom.ExecuteScalar(); } } } using (var updatecom = NewliteDB.CreateCommand()) { updatecom.CommandText = string.Format("UPDATE catalog set name='{0}',audit='{1}' where id={2}", list[j].Name, 1, list[j].Id); updatecom.ExecuteScalar(); } } } } } } NewliteDB.Close(); }
//合并(测试) public string merge2() { List <CataItem> list = new List <CataItem>(); List <int> parentid = new List <int>(); using (var cmd = m_liteDB.CreateCommand()) { cmd.CommandText = "SELECT id,name,parent FROM catalog where identifying =0"; using (var reader = cmd.ExecuteReader()) { while (reader.Read()) { //组装字典 CataItem item = new CataItem(); item.Id = reader.GetInt32(0); item.Name = reader.GetString(1); parentid.Add(reader.GetInt32(2)); list.Add(item); } } } //打开下载的文件 LiteDB NewliteDB = new LiteDB(m_folder); NewliteDB.Open(0); using (var newcmd = NewliteDB.CreateCommand()) { for (int j = 0; j < parentid.Count; j++) { newcmd.CommandText = string.Format("SELECT id,name,parent FROM catalog where id='{0}'", parentid[j]); using (var reader = newcmd.ExecuteReader()) { if (reader.Read()) { using (var addcom = NewliteDB.CreateCommand()) { addcom.CommandText = string.Format("insert into catalog(id,name,parent,audit) values('{0}','{1}','{2}','{3}')", list[j].Id, list[j].Name, parentid[j], 1); addcom.ExecuteScalar(); } } else { using (var cmd = m_liteDB.CreateCommand()) { cmd.CommandText = string.Format("SELECT id,name,parent FROM catalog where id='{0}'", parentid[j]); using (var readerparent = cmd.ExecuteReader()) { while (readerparent.Read()) { using (var addcom = NewliteDB.CreateCommand()) { addcom.CommandText = string.Format("insert into catalog(id,name,parent) values('{0}','{1}','{2}')", readerparent.GetInt32(0), readerparent.GetString(1), readerparent.GetInt32(2)); addcom.ExecuteScalar(); } } } using (var addcom = NewliteDB.CreateCommand()) { addcom.CommandText = string.Format("insert into catalog(id,name,parent,audit) values('{0}','{1}','{2}','{3}')", list[j].Id, list[j].Name, parentid[j], 1); addcom.ExecuteScalar(); } } } } } } NewliteDB.Close(); Updatetreeview(); return("a"); }
//读数据库树形节点 private void LoadCatalog() { var dictPID = new Dictionary <int, int>(); dictCatalog = new Dictionary <int, CataItem>(); using (var cmd = m_liteDB.CreateCommand()) { if (ServerManagement.id == 1) { cmd.CommandText = "SELECT id,name,parent,newname,audit FROM catalog "; using (var reader = cmd.ExecuteReader()) { while (reader.Read()) { //组装字典 CataItem item = new CataItem(); item.Id = reader.GetInt32(0); item.Name = reader.GetString(1); item.NewName = reader.GetString(3); //item.Audit = reader.GetInt32(4).ToString(); if (reader.GetInt32(4) == 1) { item.Audit = "未审核"; } else { item.Audit = ""; } dictCatalog.Add(reader.GetInt32(0), item); //0位当前id, 2位父节点id dictPID.Add(item.Id, reader.GetInt32(2)); } } } else { cmd.CommandText = string.Format("SELECT id,name,parent,newname,NameID FROM catalog where NameID='{0}' or audit=0 ", ServerManagement.id); using (var reader = cmd.ExecuteReader()) { while (reader.Read()) { CataItem item = new CataItem(); item.Id = reader.GetInt32(0); if (reader.GetString(3) != "" && ServerManagement.id != 0) { item.Name = reader.GetString(3); } else { item.Name = reader.GetString(1); } //if (reader.GetInt32(4) != -1) //{ item.NameId = reader.GetInt32(4); //} item.Audit = ""; dictCatalog.Add(reader.GetInt32(0), item); //组装字典 //0位当前id, 2位父节点id dictPID.Add(item.Id, reader.GetInt32(2)); } } } //对 父子节点进行组装 foreach (var key in dictCatalog.Keys) { //找到当前节点 var c = dictCatalog[key]; //获取当前节点的父节点id var parentID = dictPID[c.Id]; if (dictCatalog.ContainsKey(parentID)) { //获取父节点对象 var parent = dictCatalog[parentID]; //指定当前节点的父节点 c.Parent = parent; //给父节点的Children集合加入当前节点 parent.Children.Add(c); } } } }