首页 新闻 搜索 专区 学院

c# 执行存错过程

0
悬赏园豆:40 [已解决问题] 解决于 2020-07-20 16:16

有一个存储过程里面存在print打印关键字,c#代码中应该如何调用该存储过程

以及如何调用各种不同返回值类型的存储过程
例如下面的存储过程:

Script丶的主页 Script丶 | 初学一级 | 园豆:170
提问于:2020-07-17 17:47
< >
分享
最佳答案
0

使用c#数据库连接对象执行存储过程
可设置comm.CommandType = CommandType.StoredProcedure; 标识存储过程
然后再设置指定的参数

如上图既可以执行该存储过程,并且使用refPar参数接收存储过程output参数。

拓展:当然也可以通过sql语句的方式执行存储过程,例如:exec [存储过程名称] ‘参数1’,'参数2'.......然后使用Fill、ExecuteNonQuery或者ExecuteScalar都可以执行,根据实际业务合理调用即可

Script丶 | 初学一级 |园豆:170 | 2020-07-20 16:01
其他回答(1)
0

回答问题1:ORM基本都支持存储过程查询, 如何调用参照具体API即可,大体都是一样,ado.net如何调用也很简单,可以谷歌一下。
回答问题2:存储过程返回结果,作为一个表返回即可,比如我返回一个表,在最后一行写SELECT 列 FROM 表 即可
如果返回某个字段,比如你上面的@STMT,那么就这样写:SELECT @STMT
实际就是一个只有一行一列的表,如何读取跟平常读表一样,如何接收返回类型也简单,@STMT是什么类型,在C#里定义model的时候用什么类型对应即可。如果你返回多个不同类型的结果,就这样写:SELECT @STMT1 AS 别名1,@STMT2 AS 别名2,@STMT3 AS 别名3 注意命名的别名和程序里的model类型和名称一致即可。
以上。

收获园豆:40
默卿 | 园豆:5241 (大侠五级) | 2020-07-17 18:28

谢谢回答,之前一直调用失败的原因在于测试用的存储过程拼接sql语句int类型与varchar拼接,没有转换数据类型导致报错。问题找到后都迎刃而解了

支持(0) 反对(0) Script丶 | 园豆:170 (初学一级) | 2020-07-20 16:03
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册