sql中如何通过存储过程返回结果集
如果我在代码中调用存储过程,如何返回里面select语句的结果集呢存储过程是如何执行的,如果存储过程里有n个select语句那么它返回的是那条select语句结果集...
如果我在代码中调用存储过程,如何返回里面select语句的结果集呢
存储过程是如何执行的,如果存储过程里有n个select语句那么它返回的是那条select语句结果集 展开
存储过程是如何执行的,如果存储过程里有n个select语句那么它返回的是那条select语句结果集 展开
5个回答
展开全部
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就是读出来的数据。也就是写了什么类型的存储过程,就新建一个相同的类型来接收就行了。看得懂吗?看不懂发消息给我,再教你。
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就是读出来的数据。也就是写了什么类型的存储过程,就新建一个相同的类型来接收就行了。看得懂吗?看不懂发消息给我,再教你。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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
这是客户端应用程序返回结果的最通用的方法。结果集是通过使用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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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();
}
就是调用方法
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();
}
就是调用方法
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
其实是一样的,你可以找一个SQLHELP看看
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询