| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
高端软件开发 = 年薪十万不是梦   
共有 443 人关注过本帖
标题:(出错求救)为过程或函数 IndexTree_Delete 指定的参数太多
收藏  订阅  推荐  打印
wangzhen_andy
Rank: 1
等级:新手上路
帖子:11
积分:212
来自:广州
注册:2008-9-22
(出错求救)为过程或函数 IndexTree_Delete 指定的参数太多

今天用DbHelper进行数据库的操作,编了几行代码。运行时出错如下:
未处理的“System.Exception”类型的异常出现在 SubwayPreplan.exe 中。

其他信息: 为过程或函数 IndexTree_Delete 指定的参数太多。

相关代码:
public void Delete(int ID)
        {

            int rowsAffected;
            SqlParameter[] parameters = {
                    new SqlParameter("@ID", SqlDbType.BigInt,8),    
                    new SqlParameter("@Title", SqlDbType.VarChar,50),
                };
            parameters[0].Value = ID;
            parameters[1].Value = Title;
            DbHelperSQL.RunProcedure("IndexTree_Delete", parameters, out rowsAffected);
        }
private void btndeleteNode_Click(object sender, EventArgs e)
        {
            clsIndexTree.ID = int.Parse(txtNodeId.Text);
            clsIndexTree.Title = txtNodeName.Text;
            clsIndexTree.Delete(clsIndexTree.ID);
            MessageBox.Show("编辑成功", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);

        }

小弟出学者,不知道怎样改,请大家指教!!
2008-10-3 20:28
jz8417
Rank: 1
等级:新手上路
帖子:24
积分:330
注册:2008-10-3

这个

不懂
楼下回答
我是菜鸟。。。

[url=http://www.mtvtb.com]成人小游戏[/url] [url]http://www.xux9.cn[/url]
2008-10-3 22:02
wangzhen_andy
Rank: 1
等级:新手上路
帖子:11
积分:212
来自:广州
注册:2008-9-22

第一次发帖,你是第一个回复,还是谢谢啦。。。。
2008-10-3 23:00
bygg
Rank: 12Rank: 12Rank: 12
等级:版主
帖子:9616
积分:96386
威望:167
来自:乖乖的心中
注册:2006-10-23

public void Delete(int ID)方法中只需要一个参数,但是parameters[1].Value = Title;中的Title是哪里来的?

而引用时clsIndexTree.Delete(clsIndexTree.ID);我觉得没错的.

一个天才顶不上十个笨蛋!
书山有路勤为径,学海无涯友相伴。
我的MSN和E-mail:mylover624@yahoo.com.cn
2008-10-4 12:14
球球
Rank: 12Rank: 12Rank: 12
等级:版主
帖子:938
积分:9523
威望:18
注册:2005-11-28

public bool Delete(clsIndexTree)//这里具体的是你的(实体 实例名)        
        {
            int rowsAffected;
            SqlParameter[] parameters = {
                    new SqlParameter("@ID", SqlDbType.BigInt,8),   
                    new SqlParameter("@Title", SqlDbType.VarChar,50),
                };
            parameters[0].Value = clsIndexTree.ID;
            parameters[1].Value = clsIndexTree.Title;
            DbHelperSQL.RunProcedure("IndexTree_Delete", parameters, out rowsAffected);
        }
private void btndeleteNode_Click(object sender, EventArgs e)
        {
            clsIndexTree.ID = int.Parse(txtNodeId.Text);
            clsIndexTree.Title = txtNodeName.Text;
            clsIndexTree.Delete(clsIndexTree)
            MessageBox.Show("编辑成功", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);

        }
如果clsIndexTree是实体对象,就用传对象的方式来传参,数据库存储过程里的输入参数应该有两个:ID,Title
clsIndexTree.Delete最好是返回bool值,通过判断来确实是否编辑成功。

[ 本帖最后由 球球 于 2008-10-4 12:58 编辑 ]

将代码泡到底。。。。。。
2008-10-4 12:55
wangzhen_andy
Rank: 1
等级:新手上路
帖子:11
积分:212
来自:广州
注册:2008-9-22

谢谢各位的大力支持,我会继续努力的,将代码进行到底!!
2008-10-4 13:13
wangzhen_andy
Rank: 1
等级:新手上路
帖子:11
积分:212
来自:广州
注册:2008-9-22

回复bygg:我把Title相关的那两个语句注释掉了,运行出现错误,显示
未处理的“System.Exception”类型的异常出现在 SubwayPreplan.exe 中。

其他信息: @ID 不是过程 IndexTree_Delete 的参数。
想不明白了,我看的例程里的delete函数都是这样子写的。用DBHelper生成的那些代码不都是一样的吗?

回复球球:我按照您的意思修改了程序,但是结果还是出错,错误信息和原来的一样,参数过多。

其实我也是拿着师兄的程序,帮忙修改,他form里面的delete没有实现,我帮忙写的,真的不行就开学再去问问师兄了。。。。
2008-10-4 13:40
球球
Rank: 12Rank: 12Rank: 12
等级:版主
帖子:938
积分:9523
威望:18
注册:2005-11-28

编辑肯定是要传Title的,不然光传ID能编辑什么呢?你看下你的存储过程里是怎么写的?存储过程里应该有两个输入参数才对,通过ID来修改Title。

将代码泡到底。。。。。。
2008-10-4 14:23
球球
Rank: 12Rank: 12Rank: 12
等级:版主
帖子:938
积分:9523
威望:18
注册:2005-11-28

问一下你这里的存储过程IndexTree_Delete 是操作什么功能的?是删除一条信息吗?

将代码泡到底。。。。。。
2008-10-4 14:28
球球
Rank: 12Rank: 12Rank: 12
等级:版主
帖子:938
积分:9523
威望:18
注册:2005-11-28

把你的IndexTree_Delete存储过程贴上来就知道是哪里的原因了。
根据你的DbHelperSQL.RunProcedure("IndexTree_Delete", parameters, out rowsAffected);
应该把连接数据库的字符串单独提取出来传入到方法里:
DbHelperSQL.RunProcedure(DbHelperSQL.StrConn, "IndexTree_Delete", parameters, out rowsAffected);
DbHelperSQL.StrConn连接在方法里用完之后立即关闭,不知道你的DbHelperSQL类是如何写的?
可能你的DbHelperSQL已经做了处理,我这里只是建议一下。

将代码泡到底。。。。。。
2008-10-4 14:40
共有 442 人关注过本帖
发新话题
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.056097 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved