怎样进行对数据的刷新?(100分)

  • 主题发起人 主题发起人 applesea
  • 开始时间 开始时间
A

applesea

Unregistered / Unconfirmed
GUEST, unregistred user!
小M现有一个表,表里的数据是关于学生信息的,
现在要做一个功能,就是让用户可以修改里面的信息,
插入,删除,都好办,可是修改该怎样实现呢?
是不是要和原来的数据比较呢?
现在窗体里有一个table,datasourc,dbgrid和几个edit与lable,button
我想让用户可以在dbgrid或者是edit里修改数据,然后按下“更新”既可实现修改数据,
这样的功能可以实现吗?
 
当然可以了
UPDATE一下就可以了呀
 
if Table1.State in [dsInsert, dsEdit] then
Table1.Post
 
UpdateBatch
 
各位高手,可以写的详细一点吗?
 
加入两个BUTTON,BUTTON1先把当前记录中的信息读到几个EDIT中,待修改完成后,
再用BUTTON2将EDIT中的信息写入数据库.
这样比直接在DBGRID中修改直观一些.
 
只是update就好了
 
不用那么复杂,只要用DATA CONTROLS里的控件就可以了,比如EDIT你可以用DBEDIT,然后
加上一个DBNAVIGATOR数据库导航条,把所有DB控件的DATASOURCE属性设成你的DATASOURCE
,一句代码都不要写就可以实现数据的添加、删除、编辑、提交、前后首尾记录的操作了。
这可是DELPHI或是CB的数据库基本编程方法呀!
 
各位大哥,小M知道可以用DBNAVIGATOR,但是我们需要编一个这样的按纽啊,
我也知道用update,可是一到具体的代码,就写不出来了!
我有一个教师表,我已经实现了插入和删除的功能,我想再实现一个更改的
功能,这个教师总共有五个字段,我设计了五个edit,
我想随便在哪个edit上输入数据,按下“更改”后,
就可以把当前的记录修改。于是我在按纽的click写入:
update jiaoshi
set 教师=edit1.text
;
;
where 教师<>'' or ....or....
可是运行的时候update jiaoshi却通不过,为什么?
我的代码有错误吗?
谢谢了!
我该怎样编写呢?
 
update jiaoshi
set 教师=edit1.text
;
;
where (教师<>'') or() ....or ()....

多个条件之间要加括号
 
谢谢各位了,小M的这个问题已经解决了,我用dbedit ,
让每个edit和各个字段联系起来,然后在刷新的按纽写入:
table1.open;
table1.post;
table1.refresh;
可是现在小M遇到了另外一个问题,我要做一个密码登录的功能,
首先我已经存在了一个用户密码表,
该表有client&password两个字段,
其中cllient已经存在数据,因为学生应该是存在的,
password是空的,等待输入后更新。
界面是:
用户:
密码:
确认密码:
提交(提交是个按纽)
于是我想在button的click处填入:
首先看输入的用户是否和表里的匹配,
如果存在的话,就可以注册,
然后再将密码输入表内,进行刷新,
可是只是懂这样想,却不晓的该如何实现?
小M用的是desktop里的paradox编写表的,
再做不出来,可就要挨老师批了,拜托各位大哥了!

 
应该首先验证密码和确认密码是否一样,如果一样,
看输入的用户是否和表里的匹配,如果存在的话,再看相应的password是否为空
为空则注册,将密码输入表内,否则校验密码!

这样说简单吗?如果不行,干脆你给分,我作了发给你!:)
 
if input_yhm.text = '' then //input_yhm 用户名 TEdit
Begin
ShowMessage('请输入用户名.');
input_yhm.SetFocus;
Exit;
End;
With Table1 do
Begin
TableName := 'dyh'; //dyh.db 密码表
Open;SetKey;
if Not Findkey([input_yhm.Text]) then
Begin
ShowMessage('此用户不存在.');
Exit;
End;
if input_mm.text <> FieldByName('pas').AsString then
Begin
Showmessage('密码输入错误!');
i := i + 1;
if i=3 then
Application.Terminate;
input_mm.SetFocus;
Exit;
End;
End;
 
//最后两行也很重要!!!!好像只有这样才能刷新DBGIRD

//不过大虾们,是否有更好的刷新方法???????

if Table1.State in [dsInsert, dsEdit] then
begin
Table1.Post
Table1.Close;
Table1.Open;
end;
 
谢谢楼上的那么多位大哥了,小M的登录问题已经解决了,注册问题也解决了,现在把注册
代码写下,虽然简单,也是小M的一番努力!^o^
procedure Tfrmzhuce.Button1Click(Sender: TObject);
begin
WITH Table1 do
begin
SetKey;
FieldByName('client').AsString:=Edit1.text;
if GotoKey then
begin
if fieldbyname('password').asstring='' then
begin
if Edit2.text=Edit3.text then
begin
Edit;
FieldByName('password').asstring:=Edit2.text;
table1.post;
table1.refresh;
edit1.text:='';
edit2.text:='';
edit3.text:='';
showmessage('恭喜你!注册成功');
end
else
showmessage('密码输入不正确,请重新输入');
end
else
showmessage('此用户已经注册');
end
else
begin
edit1.text:='';
edit2.text:='';
edit3.text:='';
showmessage('此用户不存在!');
end;


end;



end;

procedure Tfrmzhuce.Button2Click(Sender: TObject);
begin
edit1.text:='';
edit2.text:='';
edit3.text:='';
end;

end.
 
接受答案了.
 
后退
顶部