Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > .NET > VB.NET > SqlDataSource WEB控件:当DeleteCommandType="storedProcedure"时
【标  题】:SqlDataSource WEB控件:当DeleteCommandType="storedProcedure"时
【关键字】:SqlDataSource,WEB,DeleteCommandType,storedProcedure
【来  源】:http://dsclub.cnblogs.com/archive/2006/03/26/358925.html

SqlDataSource WEB控件:当DeleteCommandType="storedProcedure"时

Your Ad Here 设计
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久都没有找到解决办法,希望对有同样问题的人有些用处。

[ASP.NET入门随想九] 宽容——W3C 的Web标准(修改版):【上一篇】
自己动手定制NUnit(一):增加函数说明显示:【下一篇】
【相关文章】
  • [ASP.NET入门随想九] 宽容——W3C 的Web标准(修改版)
  • eclipse3.1的web项目有时候不能自动编译解决办法
  • WebWork 2.2发布以来的一些变化
  • Web MVC Framework - Stripes观后感
  • WebWork 2.2.2发布了
  • 利用WebClient获取远程数据(仅做备份)
  • microsoft office web 组件(owc11)的编程(.net)
  • 听WEB2.0的一个讲座有感
  • 在IBM WebSphere MQ本地队列中存取消息
  • 为什么奇虎、大旗之流不是web2.0
  • 【随机文章】
  • HTML事件触发列表与解说
  • 企业级室内增强型无线局域网接入点(AP)
  • Class与ID的区别
  • LFS5.0 system finish
  • 主板维修资料
  • CCProxy Log Stack Overflow 漏洞浅析(3)
  • 使用C#编写扩展存储过程
  • 怎样在PHP中通过ADO调用Asscess数据库和COM程序
  • 熟悉Linux系统安全和优化(中)
  • 精油过敏还得找永康!
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.