偶是初学者,碰到一个问题。如下代码:
procedure TForm1.Button1Click(Sender: TObject);
var
  ID:string;
  MessageContent,Number,SendTime:string;
  ConnStr :string;
  ServerAddress,DBName,UserName,Password:string;
  IniFile:TiniFile;
begin
  IniFile := TiniFile.Create('Config.Ini');
  ServerAddress := IniFile.ReadString('DbCOnfig','ServerAddress','');
  DBName        := IniFile.ReadString('DbCOnfig','DbName','');
  UserName      := IniFile.ReadString('DbCOnfig','UserName','');
  Password      := IniFile.ReadString('DbCOnfig','Password','');
  IniFile.Destroy;
  ConnStr := 'Provider=SQLOLEDB.1;Password="'+Password+'";Persist Security Info=True;User ID='+UserName+';Initial Catalog='+DBName+';Data Source='+ServerAddress;
  ADOConnection1.connected:=false;
  ADOConnection1.ConnectionString:=connstr;
  ADOConnection1.connected:=true;
  ADOConnection1.Open;
  ADODataSet1.Connection:= ADOConnection1;
  with  ADODataSet1 do
   begin
     close;
     ADODataSet1.CommandText:='select TOP 1 GetNO from SendInfo';
     open;
         if not eof then
          begin
          Edit1.Text:= trim(fieldbyname('GetNO').Value);
          end;
   end;
end;可是编译后执行,却报GetNO无效,不知道什么原因,求解答,谢谢。

解决方案 »

  1.   

    要看你的字段GetNO 是什么类型的了。数字型肯定不行。我用ACCESS数据库,GetNO字段为文本型,试验没问题。
      

  2.   

    很明显你的字段名写错了,表里没有getno这个字段。
      

  3.   

    表里面我可以肯定由GETNO这个字段的
    数据连接上应该没有问题吧
      

  4.   

    能执行ADOConnection1.Open;说明跟数据库连接没有问题
      with  ADODataSet1 do
       begin
         close;
         ADODataSet1.CommandText:='select TOP 1 GetNO from SendInfo';
         open;
         //    if not eof then
         //     begin
         //     Edit1.Text:= trim(fieldbyname('GetNO').Value);
         //     end;
       end;
    测试下错误是不是发生在open这句,如果是说明ADODataSet1.CommandText:='select TOP 1 GetNO from SendInfo'有问题
      

  5.   

    fieldbyname('GetNO').Value
    你换成fieldbyname('GetNO').asstring;试试