实用主义

把.Net用好用足

导航

使用ObjectDataSource注意DeleteMethod、UpdateMethod、Insert等方法中参数的命名约定

使用ObjectDataSource注意DeleteMethod、UpdateMethod等方法中参数的命名约定:
如:    如果UpdateMethod原型为:
         <DataObjectMethod(DataObjectMethodType.Update, True)> _
    Public Shared Sub UpdateBuild(ByVal sBuildID As String, ByVal sBuildNo As String, ByVal sBuildLoc As String)
则参数指定应为:
 <UpdateParameters>
                <asp:ControlParameter ControlID="txtBuildID" Name="sBuildID" PropertyName="Text" />
                <asp:ControlParameter ControlID="txtBuildNO" Name="sBuildNo" PropertyName="Text" />
                <asp:ControlParameter ControlID="txtBuildLoc" Name="sBuildLoc" PropertyName="Text" />
            </UpdateParameters>
这些中的parameter的名称要与UpdateMethod中的方法名称完全一样。
GridView的 DataKeyNames属性被赋值为隐含对象的主键。这是在使用GridView来编辑或删除数据的要点,因为这个属性象指出了标识唯一记录的那个字段(或是一组字段)。
----------------补充ObjectDatasource的几个约定
objectDatasource绑定到gridview时且使用<%#表达式绑定列时,要更新,需注意:
1.设置gridview的datakeyNames为主键值(更新需要的主键列)
2.objectdatasource中的update方法中参数名必须与取出的记录的字段名同名
3.所有<%#bind列的数据字段名都需要出现在objectdatasource中的update方法中参数中
4.如果需要根据原始主键值,则需要设置原始键值的格式化名称OldValuesParameterFormatString="ORG_{0}",且根据gridview的datakeyNames(例如为ID)中的字段名形成的ORG_ID这样的名称,要出现在objectdatasource的update方法中。
5.不需要设置UpdateParameters属性,除非有额外的参数,ConflictDetection不需要设置(默认即使用OverwriteChanges)
如果3或5没有满足,就会出现“找不到非泛型方法XXXXX”了

posted on 2007-10-18 20:38  Render  阅读(3108)  评论(2编辑  收藏  举报