c# 执行存错过程

2020-07-20 16:02发布

问题:

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

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

回答1:

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

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

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



回答2:

回答问题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类型和名称一致即可。
以上。