相关疑难解决方法(0)

在C#中访问SQL Server存储过程输出参数

我有一个简单的SQL Server存储过程:

ALTER PROCEDURE GetRowCount

(
@count int=0 OUTPUT
)

AS
Select * from Emp where age>30;
SET @count=@@ROWCOUNT;

RETURN
Run Code Online (Sandbox Code Playgroud)

我试图访问以下C#代码中的输出参数:

SqlConnection con = new SqlConnection();
con.ConnectionString = "Data Source=localhost\\SQLEXPRESS;Initial Catalog=answers;Integrated Security=True";

SqlCommand cmd = new SqlCommand();
cmd.Connection = con;

cmd.CommandText = "GetRowCount";
cmd.CommandType=CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@count", SqlDbType.Int));
cmd.Parameters["@count"].Direction = ParameterDirection.Output;
con.Open();
SqlDataReader reader=cmd.ExecuteReader();
int ans = (int)cmd.Parameters["@count"].Value;
Console.WriteLine(ans);
Run Code Online (Sandbox Code Playgroud)

但是在运行代码时,会在代码的倒数第二行抛出NullReferenceException.我哪里错了?提前致谢!

PS我是SQL Procedures的新手,所以我参考了这篇文章.

c# t-sql sql-server stored-procedures

3
推荐指数
1
解决办法
3万
查看次数

标签 统计

c# ×1

sql-server ×1

stored-procedures ×1

t-sql ×1