本文包括用SqlClient和Odbc两种连接方式调用SqlServer的存储过程,这两种方式有细微的区别:
存储过程名为‘MaxAge’,包括输入参数和输出参数,输出只能人员的最大年龄。数据库为自建的test数据库,包括一个名为useName的表,字段有id(itn);name(nvarchar(10));age(int)
存储过程如下:
使用SqlClient调用存储过程的方法如下:
使用Odbc调用存储过程的方法如下:
可能遇到的问题:
使用ODBC方法,只能方法时会报这样的异常:ERROR [42000] [Microsoft][ODBC SQL Server Driver][SQL Server]过程 'MaxAge' 需要参数 '@Name1',但未提供该参数。
解决办法:将command.CommandText = "MaxAge"; //存储过程名称 改为 command.CommandText = "{call MaxAge (?, ?,?)}";即可,目前原因未知;前面的方法在sqlclient中是可用的