Я использую gridview для выбора, удаления и обновления данных в базе данных. Я написал один SP для выполнения всех этих операций. На основании параметра SP решает, какую операцию выполнить.
Вот изображение моего gridview
изображение моей сетки 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 ожидает параметр «@Domain», который не был предоставлен
Но я поставляю этот параметр, как
Мой вызов хранимой процедуры выглядит так
EXEC Tags.spOnlineTest_Domain NULL, NULL, NULL, 1 // Для выбора последний параметр будет 1
EXEC Tags.spOnlineTest_Domain "SelectedRow's DomainId), NULL, NULL, 4 // Для удаления последний параметр будет 4
Моя процедура имеет 4 параметра, где последний параметр будет установлен программистом, который сообщит программе, какую операцию нужно выполнить.
Для выбора только последний параметр должен быть не нулевым.
Для Delete первый и последний параметр не может быть NULL.
Мой первый параметр Delete - это первичный ключ таблицы. Я передаю это значение, когда пользователь выбирает строку и нажимает удалить. Я не уверен, используя PropertyName = "SelectedValue", я получу правильное значение идентификатора.
http://www.freeimagehosting.net/uploads/0a5de50661.jpg />