要用treeview的分级的档案管理系统
我现在遇到的问题是:
1怎么把从edit1.texteditn.text的输入的数据保存数据库中
(要求我用的是sqlsever2000,用ado连接,不能用DB控件)
2.对edit1.text值进行判断,如果edit1.text值在0-9作为根节点的一级子节点
当edit1.text值为001-009作为值为0的值 ,如果父节点不在是输出警告。
并且保存treeview的每一个节点
3.对treeview进行刷新
4.怎么进行删除treeview的节点和数据库相应的数据
我现在遇到的问题是:
1怎么把从edit1.texteditn.text的输入的数据保存数据库中
(要求我用的是sqlsever2000,用ado连接,不能用DB控件)
2.对edit1.text值进行判断,如果edit1.text值在0-9作为根节点的一级子节点
当edit1.text值为001-009作为值为0的值 ,如果父节点不在是输出警告。
并且保存treeview的每一个节点
3.对treeview进行刷新
4.怎么进行删除treeview的节点和数据库相应的数据
不用数据DB组件就用结构化查询语句啊
adocon :TAdoconnection;
sql :string;
sql :='insert/delete/Update .............';//
adocon.Execute(sql);treeview控件的使用可以看看help;
好好学习SQL吧!
Mdb_Path := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=BJDataBase.mdb;Persist Security Info=False';伪代码:Conn:OLEVARIANT;
Conn := CreateOleObject('ADODB.Connection');
Conn.CursorLocation := AduseClient;
Conn.open(Mdb_Path);2,不明白贴一段我操作treeview的代码//添加菜单
procedure TMainForm.AddMenuClick(Sender: TObject);
Var
MyRecordPointer:PMyRecord;
SQLStr:String;
MesBox:String;
begin
TEditMenu.Create(Application);
EditMenu.EditMenuText.Enabled := False;
EditMenu.AddMenuText.Enabled := True;
EditMenu.BitBtn2.Enabled := False;
With EditMenu Do
Begin
Try
ShowModal ;
Finally
IF BitBtn1.ModalResult = mrOk Then
Begin
New(MyRecordPointer);
MyRecordPointer.MenuID := PMyRecord(TreeView1.Selected.Data)^.ParentID ;
MyRecordPointer.ParentID := PMyRecord(TreeView1.Selected.Data)^.ParentID + TreeView1.Selected.Count+Random(10);
MyRecordPointer.MenuName := AddMenuText.Text ;
MesBox := '将在'+PMyRecord(TreeView1.Selected.Data)^.MenuName+'栏目下添加'+AddMenuText.Text+'栏目';
IF Application.MessageBox(PChar(MesBox),'确定',MB_YESNO+MB_ICONINFORMATION)=IDYes Then
Begin
SQLStr := 'Insert into [Menu] (MenuID,ParentID,MenuName) Values '+
'('''+ IntToStr(PMyRecord(TreeView1.Selected.Data)^.ParentID) + ''','+
''''+ IntToStr(PMyRecord(TreeView1.Selected.Data)^.ParentID) + IntToStr(TreeView1.Selected.Count+Random(10)) +''','+
''''+ AddMenuText.Text +''')';
IF Trim(AddMenuText.Text) <> '' Then
Begin
Try
Conn.Execute(SQLStr);
TreeView1.Items.AddChild(TreeView1.Selected,AddMenuText.Text).Data := MyRecordPointer;
Except
ShowMessage('添加栏目失败,请重新选择上层菜单再次添加');
End;
End;
End;
End;
Close;
End;
End;
end;//修改栏目
procedure TMainForm.N1Click(Sender: TObject);
Var
MyRecordPointer:PMyRecord;
SQLStr:String;
MesBox:String;
begin
TEditMenu.Create(Application);
EditMenu.AddMenuText.Enabled := False;
EditMenu.BitBtn1.Enabled := False;
EditMenu.EditMenuText.Enabled := True;
EditMenu.BitBtn2.Enabled := False;
With EditMenu Do
Begin
Try
ShowModal;
Finally
IF BitBtn2.ModalResult = mrOk Then
Begin
New(MyRecordPointer);
MyRecordPointer.MenuName := PMyRecord(TreeView1.Selected.Data)^.MenuName ;
MesBox := '是否将'+MyRecordPointer.MenuName+'改为'+EditMenuText.Text;
MyRecordPointer.ParentID := PMyRecord(TreeView1.Selected.Data)^.ParentID;
IF Application.MessageBox(PChar(MesBox),'确定',MB_YESNO+MB_ICONINFORMATION)=IDYes Then
Begin
SQlStr:='Update [menu] Set MenuName = '''+EditMenuText.Text+''' Where ParentID = '''+IntToStr(MyRecordPointer.ParentID)+'''';
Try
Conn.Execute(SQlStr);
TreeView1.Selected.Text := EditMenuText.Text;
Except
ShowMessage('修改栏目失败,请选择上层栏目后,再返回来再次尝试修改');
End;
End;
End;
Close;
End;
End;
end;//删除栏目
procedure TMainForm.N2Click(Sender: TObject);
Var
PID:Integer;
MenuName:String;
MsgBox:String;
begin
PID := PMyRecord(TreeView1.Selected.Data)^.ParentID ;
MenuName := PMyRecord(TreeView1.Selected.Data)^.MenuName;
MsgBoX := '即将删除'+MenuName+'栏目,以及它下层所有的栏目和文章';
IF ApplicAtion.MessageBox(PChar(MsgBoX),'确定',MB_YESNO+MB_ICONINFORMATION)=IDYes Then
Begin
Try
Conn.Execute('Delete * From [Menu] Where ParentID = '''+IntToStr(PID)+'''');
Conn.Execute('Delete * From [Menu] Where MenuID = '''+IntToStr(PID)+'''');
TreeView1.Selected.Delete;
Except
ShowMessage('删除栏目失败');
End;
End;
end;
呵呵楼上的一群愤青:)
哈哈,同意。