引用
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……谢谢兄基
但是我是想执行一个羡信谨存储过程后,直接返回表里所有数据,不要再去操作游标。
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就是读出来的数据。也就是写了什么类型的存蠢宴猛储过程,就新建一个相同带桥的类型来接收就行了。看得懂吗?看不懂发消息给我,再教你。
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
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();
}
就是调用方法
其实是一样的,你可以找一个SQLHELP看看