name:String ;(50分)

  • 主题发起人 主题发起人 gordon2006
  • 开始时间 开始时间
G

gordon2006

Unregistered / Unconfirmed
GUEST, unregistred user!
当name 里引用了数字就会报错,如果namw即要引要文字也有数字,我应该用什么型谢谢。
 
???
楼主在问什么?太大概了吧。
如果既要文字也要数字,那当然是string类型,只是你要讲数字转换成文本,IntToStr
 
什么意思?
说明白一点?
 
var
Form7: TForm7;
name:string;
procedure TForm7.Button2Click(Sender: TObject);
begin
inherited;
//设置【pr】下拉列表框中下拉列表项目
ADOQuery2.Close;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add('select id号 from pr where 姓名=''' + dbedit3.Text + '''');
ADOQuery2.Open;
dbcombobox2.Items.Clear;
while not ADOQuery2.Eof do
begin
name:=ADOQuery2.fieldbyname('id号').AsString;
dbcombobox2.Items.Add(name);
ADOQuery2.Next;
end;
end;
end.
代码在,当name是文字的数值就不报错,当是数值型就报错。
 
窗体本身有Name属性,你这个Name的变量和窗体自身的Name属性重名了!所以,编译器以为你是给Self.Name赋值, Self.Name中有代码检测,是IDE用到的,不允许非字母或者下划线开头的其他字符串赋值给Name属性,于是报错了.改你的变量名,如下:
var
Form7: TForm7;
IdName:string;
procedure TForm7.Button2Click(Sender: TObject);
begin
inherited;
//设置【pr】下拉列表框中下拉列表项目
ADOQuery2.Close;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add('select id号 from pr where 姓名=''' + dbedit3.Text + '''');
ADOQuery2.Open;
dbcombobox2.Items.Clear;
while not ADOQuery2.Eof do
begin
IdName:=ADOQuery2.fieldbyname('id号').AsString;
dbcombobox2.Items.Add(IdName);
ADOQuery2.Next;
end;
end;
end
 
變量前面最好帶個s,i或其他的字符,免得和delphi的衝突
 
把"name"改为"idname" 改后还是报错“"1"is not a valid component name.
 
string类型应该是没有问题的,你可以在查询分析器中运行你的查询语句.
即使 姓名为数字,也是可以查询出来的
 
但如果“id号”是字符就完全正常,如果"id号”是数字就报错。“"1"is not a valid component name.
 
dbcombobox2所连的FIELD字段的类型是字符类的还是数值类的
 
var
Form7: TForm7;
[red]IdName:string;[/red]
procedure TForm7.Button2Click(Sender: TObject);
begin
inherited;
//设置【pr】下拉列表框中下拉列表项目
ADOQuery2.Close;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add('select id号 from pr where 姓名=''' + dbedit3.Text + '''');
ADOQuery2.Open;
dbcombobox2.Items.Clear;
while not ADOQuery2.Eof do
begin
[red]IdName[/red]:=ADOQuery2.fieldbyname('id号').AsString;
dbcombobox2.Items.Add([red]IdName[/red]);
ADOQuery2.Next;
end;
end;
end
红色的地方都改了吗?绝对有漏掉的吧?
 
谢谢搞定是我漏掉一个。
 
后退
顶部