ObjectDataSource与GridView绑定问题.
测试项目是3层写的
页面拖一个GridView,一个ObjectDataSource.
绑定好后.数据正常显示出来,编辑,插入操作都可以.就是删除列不行.
我问了别人说是,我没设置GridView的DataKeyNames属性,我又把DataKeyNames属性绑上了ID.但是还是不能删除.
其他操作都行.编辑插入都行,就是删除不行,我确定删除的数据库代码是对的.
是怎么回事呢
- HTML code
<asp:GridView ID="gvDisplay" runat="server" AllowPaging="True" AutoGenerateColumns="False" DataKeyNames="Id" DataSourceID="ObjectDataSource1"> <Columns> <asp:BoundField DataField="Id" HeaderText="Id" SortExpression="Id" /> <asp:BoundField DataField="Sex" HeaderText="Sex" SortExpression="Sex" /> <asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" /> <asp:BoundField DataField="Age" HeaderText="Age" SortExpression="Age" /> <asp:BoundField DataField="Address" HeaderText="Address" SortExpression="Address" /> <asp:CommandField ShowDeleteButton="True" ShowEditButton="True" ShowSelectButton="True" /> </Columns> </asp:GridView> <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" DataObjectTypeName="Model.Person" DeleteMethod="Delete" InsertMethod="Insert" SelectMethod="SelectAll" TypeName="BLL.Bll_Person" UpdateMethod="Update"> </asp:ObjectDataSource>
[解决办法]
删除的方法里面需要有个对应的参数
他的参数值对应为ID的值。
[解决办法]
先用Command对象直接执行你的删除sql语句,比如delete from student where id=10,如果成功了的话
调试下你的程序,看看最后你的程序是不是没组装出正确的sql语句,或者出错了。
也可以事件探查器跟踪下,看看你的sql语句到没到数据库端。