case不同的index,调用不同的sql,insert到不同的字段
解决方案 »
- 关于速度的问题,凡是我所能想到的都想到了,但……
- yuhouyangguang(雨后阳光)进来接分吧
- 如何取录入金额的小数点后两位及四舍五入!
- 可以跳到帮助文件指定的页面
- 在Delphi6里面tblusers.Locate('users',trim(edtuser.text),[])应该检查大小写啊,可是……
- 之前装了很多第三方控件,重装系统后再运行以前做的软件时都发生错误:[Fatal Error] Required package 'FlatStyle_D6' not found这是为
- 一个非常让我头疼的spcomm的问题,谁解决了我给100分!
- 请教如何修改如何提交数据(一对多的表)
- 请问用Delphi+ADO开发管理软件是,怎样用代码来实现数据库的备份??
- 一个惊天大秘密,OICQ是世界上最大的木马!!!
- 有在用PAXCOMPILER的朋友吗?请教个问题!
- Delphi XE7开发的ANDROID程序包含广告,怎么去除???
定义一个StringList,存储ComboBox相应的字段名;
在combobox选择事件里直接:
sql.Add('insert into 表名(' + StringList[combobox.selectedIndex] + ') values(‘ +combobox.text + ’)');
大概这个意思,属性名称可能不准确;
建议插入一条记录,UpData字段值。
通常的办法,每个字段对应一个DBCombobox(或combobox) 。
比如:Edit1对应语文,Edit2对应数学,Edit3对应物理1、读取记录行的ID
2:SQ语句
SQL:='Update 成绩单 set ';
SQl:=SQL+'语文='+#39+Trim(Edit1.Text)+#39+',';
SQl:=SQL+'数学='+#39+Trim(Edit2.Text)+#39+',';
SQl:=SQL+'物理='+#39+Trim(Edit3.Text)+#39+',';
SQl:=SQL+' where ID='+#39+ID+#39;
3、通过ADO控件执行SQL语句即可
2、TDBGrid如何打开的。知情才能参谋!
性别:s_sexDBGRID是通过绑定datasourse来实现的数据显示的!~
但是DBGRID里面的得分字段只有一个,这个是动态来显示的,就是combobox里面来确定是哪一个字段。就是这一环不知道怎搞了
项目和执行的sql这样写在数据库和存储过程中,这要可以动态的不改变程序就行执行
先试试你说的这个方法,谢谢!
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, Grids, DBGrids, ADODB;type
TForm1 = class(TForm)
ComboBox1: TComboBox;
ADOConnection1: TADOConnection;
ADOQuery1: TADOQuery;
DBGrid1: TDBGrid;
DataSource1: TDataSource;
Edit1: TEdit;
Label1: TLabel;
Label2: TLabel;
Button1: TButton;
procedure ComboBox1Change(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
function IntToBin(Value: LongInt;Size: Integer): String;
procedure SetDBGridShowColus(ch:Byte);
public
{ Public declarations }
end;var
Form1: TForm1;implementationvar
SelField:string;{$R *.dfm}procedure TForm1.ComboBox1Change(Sender: TObject);
begin
case ComboBox1.ItemIndex of
0:begin SetDBGridShowColus(1);SelField:='A_score' end; //下面和0一样就不多写了
1:SetDBGridShowColus(2);
2:SetDBGridShowColus(4);
3:SetDBGridShowColus(8);
4:SetDBGridShowColus(16);
5:SetDBGridShowColus(32);
end;
end;function TForm1.IntToBin(Value, Size: Integer): String;
var
i: Integer;
begin
Result:='';
for i:=Size-1 downto 0 do
begin
if Value and (1 shl i)<>0 then
begin
Result:=Result+'1';
end
else
begin
Result:=Result+'0';
end;
end;
end;procedure TForm1.SetDBGridShowColus(ch: byte);
var
strtmp:string;
i:Byte;
cls:array[1..6] of Byte;
begin
strtmp:=IntToBin(ch,6);
for i:=1 to Length(strtmp) do
begin
cls[i]:=StrToInt(strtmp[i]);
end;
DBGrid1.Columns[2].Visible:=cls[1]=1;
DBGrid1.Columns[3].Visible:=cls[2]=1;
DBGrid1.Columns[4].Visible:=cls[3]=1;
DBGrid1.Columns[5].Visible:=cls[4]=1;
DBGrid1.Columns[6].Visible:=cls[5]=1;
DBGrid1.Columns[7].Visible:=cls[6]=1;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
//确定保存
{知道了表名、字段名称、姓名等信息、
不要使用insert into ,
需要使用Update student_score set A_score=:A_score where 判断条件
Parameters.ParamByName('id').Value:=strtofloatDef(edit1.text,0.0)}
end;end.