SQL Server 存储过程在ASP.NET中的应用

7 篇文章 0 订阅
1 篇文章 0 订阅

     今天遇到的问题是需要尽量简化ASP.NET中访问SQL Server的操作。直接用SQL语句肯定是不行了,因为这样并不便于后期的程序维护,也不符合编程的习惯(尽量把数据和控制分开),通常的在ASP.NET中调用存储过程的方法如下:

    但是,如果每次使用存储过程都设置Parameters的话,就比直接使用SQL语句更加复杂了,所以我就想到了下面的方法:

     区别在于CommandText修改为带@的格式了,但是我测试了很多次,结果都在ExecuteNonQuery的时候报错:“没有存储过程 xxxxx ”,我上网也查过资料,发现很多人出现了类似的情况,有的是因为没有选对数据库,将存储过程记录到了Master或者其他的数据中了,还有的是没有执行成功Create Procedure的,就是没有发现有人遇到我这样的情况,开始我怀疑真的没有把存储过程记录到数据库中,我就把存储过程后面的@username。。。去掉了,缺参数的情况下执行,结果报错“存储过程xxx缺少参数”,可以肯定的是,存储过程已经记录到了SQL Server上面,只是格式的问题了,我也怀疑是否可能是username是关键字?加了中括号,还是不行,因为username根本就不是SqlServer的关键字,能改的都改了,最后能改的只能是CommandType了,我想类型不会是Text吧?结果一试,类型改为Text后,居然存储过程执行通过了!让我感觉摸不到头脑,但是的确是通过了,后来我也改回过StoredProcedure,并把参数改为Parameters的方式进行定义,结果还是不能通过,提示的还是未定义存储过程。

    问题已经解决了,但是不知道为什么该是这样。觉得很郁闷。如果有高手知道这其中的原因,希望能给小弟个回答。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值