2016-06-21 14 views
0

Ich habe eine Gridview, die ich mit gespeicherten Prozeduren eingerichtet habe und Befehle auswählen und aktualisieren. Ich möchte das Benutzer-ID-Feld automatisch aktualisieren, wenn eine Zeile mit der vorhandenen serverseitigen Variable aktualisiert wird. Ich habe die Prozeduren und Befehle zum Auswählen und Aktualisieren unter Verwendung der gespeicherten Prozeduren der Schnittstelle und meines SQL-Servers bereits konfiguriert. Jede Hilfe würde sehr geschätzt werden.So übergeben Sie die aktuelle ID beim Aktualisieren einer GridView

+0

'GridView' hat ein Attribut namens' DataKeyNames'. Versuchen Sie es zu benutzen. –

+0

Ich dachte DataKeyNames war nur für Primärschlüssel. Kannst du es für jedes Feld verwenden? – WedgeBuster53

+0

Genau, 'DataKeyNames' sind für' PK'. und Sie verwenden diesen Wert, um die exakte Zeile (nach PK) zu aktualisieren. –

Antwort

0
  1. die zur Zeit schreiben in Benutzer in einer Sitzungsvariablen protokolliert:

    protected void Page_Load(object sender, EventArgs e) 
    { 
        Session["UserID"] = Request.ServerVariables("LOGON_USER"); 
    } 
    
  2. Ändern der SqlDataSourceUpdateParameters eine SessionParameter haben, die den UserID Parameter aus der Sitzung füllen wird, wenn das Update gespeicherte Prozedur aufgerufen wird .

    <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:conn %>" UpdateCommand="UpdateStoredProcedure" UpdateCommandType="StoredProcedure"> 
        <UpdateParameters> 
         <asp:Parameter Name="ID" Type="Int32" /> 
         <asp:Parameter Name="FirstName" Type="String" /> 
         <asp:Parameter Name="LastName" Type="String" /> 
         <asp:SessionParameter Name="UserID" SessionField="UserID" Type="Int32" /> 
        </UpdateParameters> 
    </asp:SqlDataSource> 
    
Verwandte Themen