SqlDataSource WEB控件:当DeleteCommandType=”storedProcedure”时「建议收藏」

2022-09-18 10:50:01 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

设计 Users表:UserID,Name Articles表:ArticleID,UserID,ArticleTitle 生成视图:

SELECT dbo.Articles.ArticleID, dbo.Articles.ArticleTitle, dbo.Users.Name FROM dbo.Articles INNER JOIN dbo.Users ON dbo.Articles.UserID = dbo.Users.UserID

写一条执行删除的StoredProcedure:

CREATE PROCEDURE dbo.DeleteArticle @a int AS delete from Articles where ArticleID = @a RETURN

在aspx页面上,增加GridView,并指定数据源SqlDataSource

通过向导生成的SqlDataSource1: <asp:SqlDataSource ID=”SqlDataSource1″ runat=”server” ConnectionString=”<%$ ConnectionStrings:DataTesterConnectionString %>” SelectCommand=”SELECT * FROM [ViewArticles]” DeleteCommand=”DeleteArticle” DeleteCommandType=”StoredProcedure”> <DeleteParameters> <asp:Parameter Name=”a” Type=”Int32″ /> </DeleteParameters> </asp:SqlDataSource>

通过向导生成的GridView1,并增加删除按钮列: <asp:GridView ID=”GridView1″ runat=”server” DataSourceID=”SqlDataSource1″> <Columns> <asp:CommandField ShowDeleteButton=”True” /> </Columns> </asp:GridView>

如MSDN所述:为了使 GridView 控件的自动更新和删除功能工作,必须设置 DataKeyNames 属性。 加入ArticleID作为主键 <asp:GridView ID=”GridView1″ runat=”server” DataSourceID=”SqlDataSource1″ DataKeyNames=”ArticleID”> <Columns> <asp:CommandField ShowDeleteButton=”True” /> </Columns> </asp:GridView>

F5,执行了一下,”为过程或函数 DeleteArticle 指定的参数太多。

靠,就一个参数也不对? 利用cs编码有很多种方法实现这一过程,现在就较上劲了就不想写代码,怎么办? 在接下来的N久时间里,我无数次的试验,终于这样搞定了:

< asp:SqlDataSource ID =”SqlDataSource1″ runat =”server” ConnectionString =”<%$ ConnectionStrings:DataTesterConnectionString %>” SelectCommand =”SELECT * FROM [ViewArticles]” OldValuesParameterFormatString =”a” DeleteCommand =”DeleteArtile” DeleteCommandType =”StoredProcedure” > < DeleteParameters > < asp:Parameter Name =”a” Type =”Int32″ /> </ DeleteParameters > </ asp:SqlDataSource >

关键是OldValuesParameterFormatString=”a”这句!

或者干脆把 <DeleteParameters> <asp:Parameter Name=”a” Type=”Int32″ /> </DeleteParameters> 这些都去掉,照样能很好的工作!

在网上找了N久都没有找到解决办法,希望对有同样问题的人有些用处。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/164511.html原文链接:https://javaforall.cn

0 人点赞