在C#中使用sqlClient和Odbc两种连接方法调用存储过程简述

 

 本文包括用SqlClientOdbc两种连接方式调用SqlServer的存储过程,这两种方式有细微的区别:

 存储过程名为‘MaxAge,包括输入参数和输出参数,输出只能人员的最大年龄。数据库为自建的test数据库,包括一个名为useName的表,字段有id(itn)name(nvarchar(10))age(int)

存储过程如下:

 

Code

使用SqlClient调用存储过程的方法如下:

 

Code

使用Odbc调用存储过程的方法如下:

 

Code

可能遇到的问题:

使用ODBC方法,只能方法时会报这样的异常:ERROR [42000] [Microsoft][ODBC SQL Server Driver][SQL Server]过程 'MaxAge' 需要参数 '@Name1',但未提供该参数。

解决办法:将command.CommandText = "MaxAge";   //存储过程名称 改为 command.CommandText = "{call MaxAge (?, ?,?)}";即可,目前原因未知;前面的方法在sqlclient中是可用的

原文地址:https://www.cnblogs.com/gossip/p/1503884.html