百度首页 | 百度空间
 
查看文章
 
未能找到带参数的非泛型方法
2007-11-06 11:26

痛苦了一天,终于解决了,虽然还是不太清楚深层次的东西.但是解决这个问题倒是小有心得了.

出现这个问题大多是在使用ObjectDataSource的时候.这时的数据读取,删除,编辑,添加等都是使用的你在BLL中抽象出来的方法.举个例子,一个表有4列属性,select以后会在detailview中产生4行内容,其中有一行是不用更新的,于是你在方法中没有设定这个参数.如果你要对这条选定的数据进行更新,那么ObjectDataSource默认是有4个属性的,但是你的方法确只有3个.这时就会出现"未能找到带参数的非泛型方法".其实你好好看看报错的内容就知道,肯定是默认的参数个数多出了你定义的个数.要解决其实也简单.一是直接删除ObjectDataSource中自动生成的那些Update参数.二是在你的方法中定义跟你显示的数据一样多的参数.大不了设定了不用吗呵呵.

至于其他人说得你的属性名跟数据库中的参数名不同导致这种问题,我倒是没遇到过.我写数据库时还是很小心的,事先已经想好了列名.所以应该不会出现这种问题.呵呵

写的有点儿乱,希望对大家有帮助


类别:c#,sql,以及其他 | 添加到搜藏 | 浏览() | 评论 (5)
 
网友评论:
1
2008-03-25 14:41
写的非常好!帮到我了,谢谢
 
2
2008-07-17 14:54
这是最正确的答案
 
3
2008-08-11 15:34
很对
 
4
2008-08-26 10:10
其实也不必要那么痛苦啊,也不要去全部写好啊,只要将那一不要更新的字段设为单向绑定(Eval)就行啊,不要用双向绑定(Bind)啊,试了一下,可以实现,没有再出现那个错误了啊
 
5
2008-08-31 13:56
对,应该也可以解决呵呵。先前还没搞清楚Bind和Eval的区别
 
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码:
 

     

©2008 Baidu