Announcement

Collapse
No announcement yet.

Update auf Dataset oder Page

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Update auf Dataset oder Page

    Hi,
    ich lasse mir über ein ASPxGrid eine ID übergeben. Danach wechsel ich auf eine neue Seite auf der mehrere DBWebTextBoxen sind, welche die Details darstellen. Beim ersten mal funktioniert das ganze wunderbar. Jedoch wenn ich zurück gehen, egal ob über funktion von IE oder über Hyperlink, und dann einen anderen Datensatz wähle zeigt er immer nur den alten Datensatz an.

    Drücke ich nun auf dem DBNavigator auf Refresh zeigt er mir den aktuellen Datensatz an.

    Denke das der bdpDataAdapter die Daten nicht an das Dataset übergibt wie kann ich diesen Refresh programmiertechnisch ausführen.
    Hier der Code welcher im Page_Load steht.

    procedure TWebForm1.Page_Load(sender: System.Object; e: System.EventArgs);<BR>
    var id : string;<BR>
    i : integer;<BR>
    mySelectCommand : Borland.Data.Provider.BdpCommand;<BR>
    begin<BR>
    // TODO: Put user code initialize the page here<BR>
    if mySelectCommand = nil then<BR>
    mySelectCommand := Borland.Data.Provider.BdpCommand.Create;<BR>
    try<BR>
    id := request.QueryString['id'].ToString;<BR>
    except on e:Exception do<BR>
    exit;<BR>
    end;<BR>
    BdpDataAdapter1.Active := False;<BR>
    mySelectCommand.CommandText := 'Select *from Adresse where ID = '''+id+'''';<BR>
    mySelectCommand.Connection := bdpConnection1;<BR>
    BdpDataAdapter1.SelectCommand := mySelectCommand;<BR>
    BdpDataAdapter1.Fill(Dataset1);<BR>
    BdpDataAdapter1.Active := True;<BR>
    end;<BR>

    MfG
    Christian Prenzel

  • #2
    Moin, Moin,

    das Problem ist hier der "komfort" der DBWebControls. Die speichern automatisch Dataset und aktuellen in die Session ab ( siehe Trace-Ausgabe).
    Bei der nächsten Anzeige der Seite wird der abgelegt Satz wiederhergestellt.
    Nach dem Fill einfach
    DBWebDataSourceXXX.ClearSessionChanges(self) aufrufen ( Parameter ist die Page).
    In einer stillen Stunde würde ich auch noch mal über den try..except Block meditieren ! Wenn der restliche Code des Handlers vor dem except stände, wäre der exit überflüssig.
    Streng genommen ist auch die Exception an sich überflüssig
    <PRE>
    var
    obj : TObject;
    ....
    obj := Request.QueryString['id'];
    if Assigned(obj) then
    begin
    id := obj.ToString;
    bdpDataAdpter1....
    ....
    end
    else
    // keine ID übergeben ...
    </PRE>

    Grüsse Bernd U

    Comment


    • #3
      Vielen Dank Sie haben mir sehr weitergehofen.

      MfG
      Christian Prenze

      Comment

      Working...
      X