procedure TForm1.Button2Click(Sender: TObject);
var sql,name1,pass1,limit1:string;
begin
name1:=edit1.Text;
pass1:=edit2.Text;
limit1:=edit3.Text;
Query1.Close;
Query1.SQL.Clear;
sql:='update dbo.bs2_limit (name,pass,limit) values (name1,pass1,limit1)';
Query1.SQL.Add(sql);
Query1.Prepare;
Query1.Open;
end;
我在dbgrid窗口内选中指定行(怎么设置选中??????)然后更新他里面的数据?

解决方案 »

  1.   

    procedure TForm1.Button2Click(Sender: TObject);
    var sql,name1,pass1,limit1:string;
    begin
    name1:=edit1.Text;
    pass1:=edit2.Text;
    limit1:=edit3.Text;
    Query1.Close;
    Query1.SQL.Clear;
    sql:='update dbo.bs2_limit (name,pass,limit) values (:name1,:pass1,:limit1)';
    Query1.SQL.Add(sql);
    query1.ParamByName('name1').AsString:=name1;
    query1.ParamByName('pass1').AsString:=pass1;
    query1.ParamByName('limit1').AsString:=limit1;
    Query1.ExecSQL ;
    end;
    这样应该没有问题!
      

  2.   

    procedure TForm1.Button2Click(Sender: TObject);
    var sql:string;
    begin
    Query1.Close;
    Query1.SQL.Clear;
    sql:='update dbo.bs2_limit set name=:Aname,pass=:Apass,limit=:Alimit';
    Query1.SQL.Add(sql);
    query1..ParamByName('Aname').AsString:=edit1.text;
    query1..ParamByName('Aname').AsString:=edit2.text;
    query1..ParamByName('Aname').AsString:=edit3.text;
    Query1.ExecSQL;
    end;//建议你最好不要用prepare
      

  3.   

    procedure TForm1.Button2Click(Sender: TObject);
    var sql:string;
    begin
    Query1.Close;
    Query1.SQL.Clear;
    sql:='update dbo.bs2_limit set name=:Aname,pass=:Apass,limit=:Alimit';
    Query1.SQL.Add(sql);
    query1..ParamByName('Aname').AsString:=edit1.text;
    query1..ParamByName('Aname').AsString:=edit2.text;
    query1..ParamByName('Aname').AsString:=edit3.text;
    Query1.ExecSQL;
    end;//建议你最好不要用prepare
      

  4.   

    如果是单选一行好象不用设置的,用MOUSE点选之后就可以更新里面的数据
      

  5.   

    上面的代码写错了
    procedure TForm1.Button2Click(Sender: TObject);
    var sql:string;
    begin
    Query1.Close;
    Query1.SQL.Clear;
    sql:='update dbo.bs2_limit set name=:Aname,pass=:Apass,limit=:Alimit';
    Query1.SQL.Add(sql);
    query1.ParamByName('Aname').AsString:=edit1.text;
    query1.ParamByName('Apass').AsString:=edit2.text;
    query1.ParamByName('Alimit').AsString:=edit3.text;
    Query1.ExecSQL;
    end;//建议你最好不要用preparedbgrid的options属性中dgRowSelected应该设置成为True;procedure TForm1.DBGrid1ColumnMoved(Sender: TObject; FromIndex,
      ToIndex: Integer);
    begin
      if ((query1.AcTive=True) AND (query1.recordcount<>0)) THEN  
      begin
        edit1.TEXT:=query1.FieldByName('Aname').AsString;
        edit2.TEXT:=query1.FieldByName('Apass').AsString;
        edit3.TEXT:=query1.FieldByName('Alimit').AsString;
      end
      else
      begin
        edit1.text:='';
        edit2.text:='';
        edit3.text:='';  end;
    end;
      

  6.   

    选中该行:locate语句.最好根据索引来.并把options的rowselected加上.
    然后再来个UPDATE就OK.