使用c#数据库连接对象执行存储过程
可设置comm.CommandType = CommandType.StoredProcedure; 标识存储过程
然后再设置指定的参数
拓展:当然也可以通过sql语句的方式执行存储过程,例如:exec [存储过程名称] ‘参数1’,'参数2'.......然后使用Fill、ExecuteNonQuery或者ExecuteScalar都可以执行,根据实际业务合理调用即可
回答问题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类型和名称一致即可。
以上。
谢谢回答,之前一直调用失败的原因在于测试用的存储过程拼接sql语句int类型与varchar拼接,没有转换数据类型导致报错。问题找到后都迎刃而解了