我正在使用gridview來選擇,刪除和更新數據庫中的數據。我已經寫了一個SP來完成所有這些操作。基於參數SP決定執行哪個操作。如何從使用數據源和SP使用嚮導的gridview刪除數據
這裏是我的GridView image of my grid http://www.freeimagehosting.net/uploads/0a5de50661.jpg
<asp:GridView ID="GridView1" runat="server" DataSourceID="dsDomain"
AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False"
DataKeyNames="DomainId" >
<Columns>
<asp:CommandField ShowDeleteButton="True" ShowEditButton="True" />
<asp:BoundField DataField="DomainId" HeaderText="DomainId"
InsertVisible="False" ReadOnly="True" SortExpression="DomainId">
</asp:BoundField>
<asp:BoundField DataField="Domain" HeaderText="Domain"
SortExpression="Domain">
</asp:BoundField>
<asp:BoundField DataField="Description" HeaderText="Description"
SortExpression="Description" >
</asp:BoundField>
<asp:BoundField DataField="InsertionDate" HeaderText="InsertionDate"
SortExpression="InsertionDate">
</asp:BoundField>
</asp:GridView>
數據源,我使用的圖像是在這裏
<asp:SqlDataSource ID="dsDomain" runat="server"
ConnectionString="<%$ ConnectionStrings:conLogin %>"
SelectCommand="Tags.spOnlineTest_Domain"
SelectCommandType="StoredProcedure" CancelSelectOnNullParameter="False"
DeleteCommand="Tags.spOnlineTest_Domain" DeleteCommandType="StoredProcedure" OnDeleting="DomainDeleting">
<SelectParameters>
<asp:Parameter ConvertEmptyStringToNull="true" DefaultValue="" Name="DomainId" Type="String" />
<asp:Parameter ConvertEmptyStringToNull="true" DefaultValue="" Name="Domain" Type="String" />
<asp:Parameter ConvertEmptyStringToNull="true" DefaultValue="" Name="Description" Type="String" />
<asp:Parameter DefaultValue="1" Name="OperationType" Type="Byte" />
</SelectParameters>
<DeleteParameters>
<asp:ControlParameter ControlID="GridView1" Name="DomainId"
PropertyName="SelectedValue" Size="4" Type="Int32" />
<asp:Parameter ConvertEmptyStringToNull="true" DefaultValue="" Name="Domain" Type="String" /> <asp:Parameter ConvertEmptyStringToNull="true" DefaultValue="" Name="Description" Type="String" /> <asp:Parameter ConvertEmptyStringToNull="true" DefaultValue="4" Name="OperationType" Type="Byte" /> </DeleteParameters> </asp:SqlDataSource>
選擇操作工作正常。 但是,當我試圖刪除,它說
過程或函數「spOnlineTest_Domain」需要參數「@域」,但未提供
但我提供這種參數,因爲
我的存儲過程調用是這樣
EXEC Tags.spOnlineTest_Domain NULL,NULL,NULL,1 //對於選擇最後一個參數爲1 EXEC Tags.spOnlineTest_Domain「S我們的過程有4個參數,其中最後一個參數將由程序員設置,它將告訴程序需要執行什麼樣的操作。 僅供選擇最後一個參數必須爲空。 對於刪除第一個和最後一個參數不能爲NULL。
我的第一個刪除參數是表的主鍵。我傳遞這個值,當用戶選擇一行並點擊刪除。我不知道通過使用PropertyName =「SelectedValue」,我會得到正確的ID值。
http://www.freeimagehosting.net/uploads/0a5de50661.jpg />
有兩個問題:你在GrdiView中定義了「DataKey」嗎?你使用的是ObjectDataSource嗎?如果是的話爲什麼不跟蹤它? – Mostafa 2010-03-02 15:20:09
是的,我已經定義了DataKeyNames =「DomainId」。是的,我得到一個堆棧跟蹤。不能理解它 – 2010-03-02 15:39:36
請發佈您的objectdatasource標記 – madatanic 2010-03-02 15:49:14