Announcement

Collapse
No announcement yet.

Update eines GridView

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

  • Update eines GridView

    Hab mal noch ne kurze Frage. Ich möchte gern ein GridView updaten. Dazu habe ich zunächst den UpdateCommand direkt in die Oberfläche geschrieben und es funktioniert. Jetzt versuche ich aber eine Prozedur aufzurufen und ihr die entsprechenden Parameter zu übergeben, bekomme dazu aber die folgende Fehlermeldung:
    "Procedure or function proc_UpdateCall has too many arguments specified."

    Da ich immer noch im Anfangsstatus bin, wollte ich mal schnell in die Runde fragen, ob ich die Parameterübergabe überhaupt so durchführen kann, wie ich es im unteren Code versuche oder ob ich das anderes realisieren muss? Es wäre super, wenn mir jemand dazu ne kurze Antwort geben könnte. Danke.

    Code:
    <asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource2"  
                                CellPadding="4" ForeColor="#333333" GridLines="Horizontal" BorderStyle="Groove" BorderWidth="2" BorderColor="#59A60C"  
                                DataKeyNames="SupportCallID" ShowFooter="True" 
                                OnSelectedIndexChanged="GridView2_SelectedIndexChanged" AllowPaging="True" AutoGenerateSelectButton="true">
                             <RowStyle  ForeColor="Black" />
                             <HeaderStyle BackColor="#66B849" ForeColor="White" Font-Bold="True" />
                             <AlternatingRowStyle BackColor="white" VerticalAlign="Middle" />                      
                             <Columns>    
                                  <asp:BoundField DataField="SupportCallID"  HeaderText="SupportCallID" SortExpression="SupportCallID" visible="false"/>
                                  <asp:BoundField DataField="Brief_Description" HeaderText="Brief Description" SortExpression="Brief Description" />
                                  <asp:BoundField DataField="Description" HeaderText="Description" SortExpression="Description" />
                                  <asp:BoundField DataField="COMPANYDID" HeaderText="Contact" SortExpression="Contact" />
                                  <asp:BoundField DataField="COMPANYID" HeaderText="Company" SortExpression="Company" />
                                  <asp:BoundField DataField="STATUSID" HeaderText="Status" SortExpression="Status" />
                                  <asp:BoundField DataField="PRIORITYID" HeaderText="Priority" SortExpression="Priority" />
                                  <asp:BoundField DataField="TYPEID" HeaderText="Type" SortExpression="Type" />
                                  <asp:CommandField SelectText="Select" UpdateText="Update" CancelText="Cancel" ShowEditButton="True" EditText="Edit" />
                             </Columns>                                        
                     </asp:GridView>
           
                     <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:scpmv3 %>"
                                SelectCommand="proc_ShowCallsNotClosedALL" SelectCommandType="StoredProcedure"
                                UpdateCommand="proc_UpdateCall" UpdateCommandType="StoredProcedure" >
                             <UpdateParameters>
                                  <asp:Parameter Name="SupportCallID" Direction="Output"/>
                                  <asp:Parameter Name="Brief_Description"/>
                                  <asp:Parameter Name="Description"/>
                                  <asp:Parameter Name="COMPANYDID"/>
                                  <asp:Parameter Name="COMPANYID"/>
                             </UpdateParameters>
                     </asp:SqlDataSource>
    Code:
    ALTER proc [dbo].[proc_UpdateCall]
    				 @supportcallid int,
    				 @Brief_Description varchar(100),
    				 @Description varchar(400),
    				 @COMPANYDID int, 
    				 @COMPANYID int
    				
    as
    		update support_call
    		set BRIEF_DESCRIPTION = @Brief_Description, 
    			DESCRIPTION = @DESCRIPTION, 
    			COMPANYDID = @COMPANYDID, 
    			COMPANYID = @COMPANYID
    		where SUPPORTCALLID = @supportcallid
    Zuletzt editiert von duukta; 05.10.2008, 12:15.

  • #2
    Hallo duukta,

    was mir direkt auffällt ist, dass die SupportCallID in den SqlDataSource Parametern als Output-Parameter definiert ist.
    Das würde bei einem Insert Sinn machen, wenn die SupportCallID eine Identity Spalte in der Datenbank wäre.
    Für das Update wird diese Id aber für die Where Bedingung als Index verwendet. Daher kann sie kein Output Parameter sein und ist auch in der Proc nicht als solcher gekennzeichnet, was zu der Fehlermeldung führt.

    Du solltest Direction="Output" für den Parameter in der SqlDataSource entfernen.

    Gruss, Bruno

    Comment


    • #3
      Hi Bruno,

      danke für deine Antwort. Ich hatte das schonmal versucht und jetzt nach deinem Post nochmal, nur bekomme ich die Fehlermeldung weiterhin. Im www habe ich dazu leider auch nicht wirklich was gefunden Weisst du sonst noch einen Tip?
      Gruss

      Comment

      Working...
      X