c# – 如何向/从SQL Server存储过程发送和接收参数
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – 如何向/从SQL Server存储过程发送和接收参数,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1730字,纯文字阅读大概需要3分钟。
内容图文
在最后一部分我WROTE工作解决方案:
我在SQL Server中有这个存储过程:
alter PROCEDURE [dbo].[ProcedureName]
@v nvarchar(10),
@L NVarChar(2)
AS
BEGIN
SET NOCOUNT ON;
SELECT B,M,V
FROM XXXX
WHERE V = @v and L = @L
END
我传递参数,但我无法检索我需要检索选择B,M,V的B,M,V的SELECT部分
SqlCommand Cmd = new SqlCommand("ProcedureName", cnn);
Cmd.CommandType = CommandType.StoredProcedure;
Cmd.Parameters.Add("@v", SqlDbType.NVarChar, 10).Value = v;
Cmd.Parameters.Add("@L", SqlDbType.NVarChar, 2).Value = lo;
if (Cmd.Connection.State == ConnectionState.Closed)
{
Cmd.Connection.Open();
}
Cmd.ExecuteNonQuery();
这是我在这里给予帮助的解决方案:
SqlCommand Cmd = new SqlCommand("ProcedureName", cnn);
Cmd.CommandType = CommandType.StoredProcedure;
Cmd.Parameters.Add("@v", SqlDbType.NVarChar, 10).Value = v;
Cmd.Parameters.Add("@L", SqlDbType.NVarChar, 2).Value = lo;
if (Cmd.Connection.State == ConnectionState.Closed)
{
Cmd.Connection.Open();
}
using (SqlDataReader reader = Cmd.ExecuteReader())
{
if (reader.HasRows)
{
while (reader.Read())
{
ret = new MYCLASS();
ret.B = reader.GetString(0);
ret.M = reader.GetString(1);
ret.V = reader.GetString(2);
}
}
}
解决方法:
您需要使用SqlDataReader才能实现此目的.还可以使用块来确保连接对象已正确关闭和处理.
从MSDN开始
To ensure that connections are always closed, open the connection inside of a using block, as shown in the following code fragment. Doing so ensures that the connection is automatically closed when the code exits the block.
您可以将代码更改为:
using(var con = new SqlConnection("ConnectionString")) {
using(var cmd = new SqlCommand("ProcedureName", con)) {
//Params here
con.Open();
using(var reader = cmd.ExecuteReader()) {
while (reader.Read()) {
var bValue = reader.GetString(0);
//Same for the next two values
}
}
}
}
内容总结
以上是互联网集市为您收集整理的c# – 如何向/从SQL Server存储过程发送和接收参数全部内容,希望文章能够帮你解决c# – 如何向/从SQL Server存储过程发送和接收参数所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。