这是一个关于sql server 中的存储过程的问题。我有一个表
两个列:
friendid,my
我的存储过程是这样写的。
create procedure [dbo].[getFriendList]
@my INT OUTPUT,
@friendid INT output,AS
select @friendid=my
from FriendInfo
where MyID=@MyQQID现在想获取friendid的列表,但是我执行这个,只能获得一个,不能获得多个。事先,我传入了@my这个参数的值,希望返回表中所有有@my这个值的行。是多行的,能弄不?
两个列:
friendid,my
我的存储过程是这样写的。
create procedure [dbo].[getFriendList]
@my INT OUTPUT,
@friendid INT output,AS
select @friendid=my
from FriendInfo
where MyID=@MyQQID现在想获取friendid的列表,但是我执行这个,只能获得一个,不能获得多个。事先,我传入了@my这个参数的值,希望返回表中所有有@my这个值的行。是多行的,能弄不?
解决方案 »
- Socket.Poll与UdpClient.Receive方法在阻塞时占用CPU50%,求优化
- 串口通信SerialPort的问题
- window forms 中怎样根据当月天数自动生成多少列
- .net中treeview展开与合拢节点
- 动态生成Treeview子节点
- 如何在WindowsApplication项目中发起一个Http的请求
- 有人用过在储存过程里用Exists吗? 我要动态传入sql语句
- 类似QQ尾巴的东西是如何实现的?大家发挥想象力,讨论一下
- C#打开MDB数据问题求救
- 用C#能不能检测网络是否连通??
- [玩一玩 分享]一个开源的wpf下的漂亮的导航面板
- 提取字符串 正则表达式 求助
@my INT
AS
select my
from FriendInfo
where MyID=@My过程你可以这么写.你写的有误.然后前台你直接返回DataSet就行了。
* CREATE PROCEDURE [dbo].[getFriendList]
AS
select 1
UNION ALL
SELECT 2
UNION ALL
SELECT 3
*/
//....
public DataTable Execute()
{
DataTable dt = new DataTable(); SqlConnection conn=new SqlConnection();
SqlCommand cmd = new SqlCommand("getFriendList", conn);
cmd.CommandType = CommandType.StoredProcedure;
conn.Open();
dt.Load(cmd.ExecuteReader());
conn.Close();
return dt;
}查看返回的dt,里面应该会有1,2,3 3行数据。
declare @n nvarchar(4000)
select @n=''
select @n=@n+','+cast(MyID AS varchar(10)) from FriendInfo where FriendID=100001
select @n=@n+','+cast(FriendID AS varchar(10)) from FriendInfo where MyID=100001
select @friendid=@n
这个问题不好描述,楼上两位幸苦了