sql中如何通过存储过程返回结果集

如果我在代码中调用存储过程,如何返回里面select语句的结果集呢存储过程是如何执行的,如果存储过程里有n个select语句那么它返回的是那条select语句结果集... 如果我在代码中调用存储过程,如何返回里面select语句的结果集呢
存储过程是如何执行的,如果存储过程里有n个select语句那么它返回的是那条select语句结果集
展开
 我来答
邶丹析培
2019-06-21 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.3万
采纳率:29%
帮助的人:1143万
展开全部
引用
4

oraclefans_
的回复:想麻烦了。。你直接返回游标就是一个结果集合。。CREATE
OR
REPLACE
PROCEDURE
USP_RETN_VAL(
RETN_VAL_CUR
OUT
sys_refcursor)ISBEGIN
OPEN
RETN_VAL_CUR
FOR
SELECT
*
FROM
TBL1;END;调用declare
cur
sys_refcurso……谢谢
但是我是想执行一个存储过程后,直接返回表里所有数据,不要再去操作游标。
septemberd
推荐于2017-09-29 · TA获得超过141个赞
知道答主
回答量:23
采纳率:0%
帮助的人:23.6万
展开全部
SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["constring"]);
SqlCommand cmd1 = new SqlCommand("存储过程名", conn);
conn.Open();
cmd1.CommandType = CommandType.StoredProcedure;
cmd1.Parameters.Add("@roomid", SqlDbType.Int);
cmd1.Parameters["@roomid"].Value = id;
SqlDataReader sdr = cmd.ExecuteReader();

sdr就是读出来的数据。也就是写了什么类型的存储过程,就新建一个相同的类型来接收就行了。看得懂吗?看不懂发消息给我,再教你。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dong_1984dd
推荐于2017-10-01 · TA获得超过1.1万个赞
知道小有建树答主
回答量:1070
采纳率:100%
帮助的人:226万
展开全部
1、 返回结果集

这是客户端应用程序返回结果的最通用的方法。结果集是通过使用SELECT语句选择数据产生的。结果集可以从永久表、临时表或局部变量中产生。将结果返回到另一个存储过程不是一种有效的方法。存储过程不能访问另一个存储过程建立的结果集。

例如从永久表中返回结果集:
USE pubs
GO
CREATE PROCEDURE ap_CreateResultFromPermtable
AS
SELECT au_iname FROM authors
例如从局部变量中创建结果集:

USE pubs
GO
CREATE PROCEDURE ap_CreateResultFromVariable
AS
DECLARE @au_iname char(20)
SELECT @au_iname = au_iname FROM authors
WHERE au_id = ‘172-32-1176’
SELECT @au_id
GO
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hyb_2008
2008-11-04 · TA获得超过322个赞
知道小有建树答主
回答量:198
采纳率:0%
帮助的人:105万
展开全部
public string sql = ConfigurationManager.ConnectionStrings["sql"].ToString();

public int SelectClassIDByClassName(string ClassName)
{
int ClassID = 0;
SqlConnection con = new SqlConnection(sql);
con.Open();
SqlCommand cmd = new SqlCommand("usp_SelectClassIDByClassName", con);
cmd.CommandType = CommandType.StoredProcedure;//告诉命令字符串里面的是一个存储过程
cmd.Parameters.Add("@ClassName", SqlDbType.VarChar, 50).Value = ClassName;//输入参数的值是ClassName;
SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
if (reader.Read())
{
ClassID =Convert.ToInt32(reader["ClassID"]);
}
return ClassID;
reader.Close();
con.Close();
}

调用的时候这样写

private void button2_Click(object sender, EventArgs e)
{

string ClassName = textBox1.Text;
int n = mn.GetClassIDByClassName(ClassName);
textBox2.Text = n.ToString();
}

就是调用方法
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友6f75ac8fa
2008-11-04 · TA获得超过2513个赞
知道大有可为答主
回答量:1.3万
采纳率:0%
帮助的人:3996万
展开全部
其实是一样的,你可以找一个SQLHELP看看
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式