效果图
参考文章
数据库设计
CREATE TABLE RenYuanDangAn
(
Gh VARCHAR(10) NOT NULL PRIMARY KEY, -- 工号,假设为字符串类型,长度根据实际情况调整
Xm VARCHAR(20) NOT NULL, -- 姓名,同样为字符串类型
Xb VARCHAR(6) NOT NULL, -- 性别
Csrq datetime NOT NULL, -- 出生日期,使用datetime类型
Hf BIT, -- 婚否,使用BIT类型,0为否,1为是
Zc VARCHAR(20), -- 职称,字符串类型
Gz DECIMAL(10, 2) NOT NULL, -- 工资,使用DECIMAL类型,10位数字,其中2位为小数
Jl VARCHAR(MAX), -- 简历,使用NVARCHAR(MAX)以存储大量文本
Zp VARBINARY(MAX) -- 照片,使用VARBINARY(MAX)以存储二进制数据
);
窗体
状态栏
{状态栏}
procedure TForm1.DataSource1StateChange(Sender: TObject);
begin
case Table1.State of
dsInsert:
StatusBar1.Panels[0].Text := '数据表处于插入状态';
dsEdit:
StatusBar1.Panels[0].Text := '数据表处于编辑状态';
dsBrowse:
StatusBar1.Panels[0].Text := '数据表处于浏览状态';
dsSetKey:
StatusBar1.Panels[0].Text := '数据表处于查询状态';
else
StatusBar1.Panels[0].Text := '未知状态';
end;
end;
{状态栏时间}
procedure TForm1.Timer1Timer(Sender: TObject);
begin
StatusBar1.Panels[1].Text:=TimeToStr(Time);
end;
新增
{新增:清空编辑框,只能保存或者取消}
procedure TForm1.Button1Click(Sender: TObject);
begin
if Table1.CanModify then
begin
Table1.Append; // 准备添加新记录
GroupBox1.Enabled:=true;
Table1.FieldByName('Hf').Value:=False;
DBNavigator1.Enabled:=False;
Button1.Enabled:=False;
Button2.Enabled:=False;
Button3.Enabled:=False;
Button4.Enabled:=False;
Button5.Enabled:=False;
Button8.Enabled:=False;
end
else
ShowMessage('当前数据表不能新增记录');
end;
删除
{删除:选中表格中某一行进行删除}
procedure TForm1.Button2Click(Sender: TObject);
begin
if MessageDlg('确实要删除当前记录吗?',mtInformation,[mbOK,mbCancel],0)=mrOK then
Table1.Delete;
end;
修改
将DBGrid控件放置在GroupBox控件外,点击DBGrid能选中整行并进行展示,但是浏览时不能修改信息。
{修改:选中某一行进行编辑}
procedure TForm1.Button3Click(Sender: TObject);
begin
if Table1.CanModify then
begin
Table1.Edit;
GroupBox1.Enabled:=true;
DBNavigator1.Enabled:=False;
Button1.Enabled:=False;
Button2.Enabled:=False;
Button3.Enabled:=False;
Button4.Enabled:=False;
Button5.Enabled:=False;
Button8.Enabled:=False;
end
else
ShowMessage('当前数据表不能被修改');
end;
查询
新建一个unit2.pas
,添加1个Label、1个Edit、2个BitBtn。
在 Delphi 中,TBitBtn
组件是一个按钮控件,它继承自 TButton
,但提供了更多样式选项,包括通过其 Kind
属性来改变按钮的显示样式。TBitBtn
的 Kind
属性用于指定按钮的样式,这个属性是 TBitBtnKind
类型的枚举,它定义了多种不同的按钮样式。TBitBtnKind
枚举可能包含以下一些值:
bkCustom
:自定义样式,允许你通过其他属性(如Glyph
、NumGlyphs
、Layout
等)来完全自定义按钮的外观。bkStandard
:标准样式,按钮显示为标准 Windows 按钮的外观。bkHelp
:帮助样式,按钮通常显示为带有问号图标的样式,用于表示帮助或上下文帮助。bkOK
、bkCancel
、bkYes
、bkNo
、bkClose
等:这些样式提供了预定义的图标和样式,用于常见的对话框操作,如“确定”、“取消”、“是”、“否”和“关闭”。
保存
{保存}
procedure TForm1.Button6Click(Sender: TObject);
begin
if Table1.State=dsBrowse then
ShowMessage('无需保存')
else
begin
Table1.Post;
GroupBox1.Enabled:=False;
DBNavigator1.Enabled:=True;
Button1.Enabled:=True;
Button2.Enabled:=True;
Button3.Enabled:=True;
Button4.Enabled:=True;
Button5.Enabled:=True;
Button8.Enabled:=True;
end;
end;
取消
{取消:取消编辑、新增操作}
procedure TForm1.Button7Click(Sender: TObject);
begin
if Table1.State=dsBrowse then
ShowMessage('无需取消')
else
begin
Table1.Cancel;
GroupBox1.Enabled:=False;
DBNavigator1.Enabled:=True;
Button1.Enabled:=True;
Button2.Enabled:=True;
Button3.Enabled:=True;
Button4.Enabled:=True;
Button5.Enabled:=True;
Button8.Enabled:=True;
end;
end;
完整代码
在这。