关于ObjectDataSoucrce2个要注意的小问题.

本文详细介绍了ASP.NET中使用ObjectDataSource控件时参数配置的重要注意事项,包括UpdateParameters和InsertParameters的顺序必须与方法参数一致,以及事件处理中参数名大小写敏感等问题。
1.

UpdateParameters,InsertParameters
参数的顺序一定要跟方法的参数顺序一样才可以,否则会抛出异常,说没有这个异常方法.
如:ObjectDataSource的UpdateMethod的方法为Update(string a,string b,int c),那么你UpdateParameters的参数应该这样写
<UpdateParameters>
  <asp:Parameter Name="a" Type="String" />
  <asp:Parameter Name="b" Type="String" />
  <asp:Parameter Name="c" Type="Int32" />
</UpdateParameters>


2.
在用ObjectDataSource的时候,我发现数据显示控件里面的参数跟ObjecDataSource的参数是可以不区分大小写的,但在事件中读取参数的时候,参数的名字一定要跟ObjectDataSource设置的参数一摸一样,是区分大小写的.
如下面的代码:
None.gif<asp:FormView ID="fv" runat="server" DefaultMode="Insert" DataSourceID="odsFV" OnItemUpdated="fv_ItemUpdated"
None.gif    OnItemInserting
="fv_ItemInserting" OnItemInserted="fv_ItemInserted">
None.gif
<InsertItemTemplate>
None.gif        名称:
None.gif        
<asp:TextBox ID="TravelArticleTitleTextBox" runat="server" Text='<%# Bind("travelArticleTitle") %>'>
None.gif        
</asp:TextBox><br />
None.gif
</InsertItemTemplate>
None.gif
</asp:FormView>
None.gif
<asp:ObjectDataSource ID="odsFV" runat="server" InsertMethod="Insert" OldValuesParameterFormatString="original_{0}"
None.gif    SelectMethod
="GetTravelArticleByTravelArticleID" TypeName="Obj.BLL.TravelArticleBLL"
None.gif    UpdateMethod
="Update" OnInserting="odsFV_Inserting">
None.gif    
<SelectParameters>
None.gif        
<asp:QueryStringParameter Name="travelArticleID" QueryStringField="TravelArticleID"
None.gif            Type
="Int32" />
None.gif    
</SelectParameters>
None.gif       
<InsertParameters>
None.gif        
<asp:CookieParameter CookieName="UserID" Name="userid" Type="String" />
None.gif        
<asp:Parameter Name="travelArticleTitle" Type="String" />
None.gif          
</InsertParameters>
None.gif
</asp:ObjectDataSource>
None.gif

其中:<asp:TextBox ID="TravelArticleTitleTextBox" runat="server" Text='<%# Bind("travelArticleTitle") %>'>
None.gif        
</asp:TextBox>中Text='<%# Bind("travelArticleTitle") %>'可以为Text='<%# Bind("TravelArticleTitle") %>'

但后台在事件读取参数中,如  protected void fv_ItemInserting(object sender, FormViewInsertEventArgs e){}
我们一定要写 e.Values["travelArticleTitle"] 而不能写e.Values["TravelArticleTitle"] 
否则我们会读取不到值!这个可能会是很多人遇到的问题,所以我把他写出来了.也许对大家有帮助.呵呵.

   

转载于:https://www.cnblogs.com/genson/archive/2007/03/18/678873.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值