VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 674|回复: 5

c# 调用存储过程!!!help!!!

[复制链接]

2

主题

4

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
发表于 2020-1-23 12:20:01 | 显示全部楼层 |阅读模式
兄弟们救命!求一个存储过程和调用存储过程(分布功能)的代码!
功能同时接收存储过程返回的DataSet和select到的纪录数!
回复

使用道具 举报

0

主题

29

帖子

19.00

积分

新手上路

Rank: 1

积分
19.00
发表于 2020-2-6 17:00:02 | 显示全部楼层
public DataSet filmdetails(int id)
{
SqlCommand Command = new SqlCommand(connection);
SqlParameter filmID = new SqlParameter("@MovieID",SqlDbType.Int);
filmID.Value = id;
Command.Parameters.Add(filmID);
Command.CommandText="select_FilmDetails";
Command.CommandType=CommandType.StoredProcedure;
DataSet ds = new DataSet();
DataAdapter da = ...;
.............................................
da.fill(ds);
return ds;
}

设置存储过程在于这两句了
Command.CommandText="select_FilmDetails"; //存储过程的名称
Command.CommandType=CommandType.StoredProcedure; //说明command为一个sqlserver里存储过程
//添加参数
SqlParameter filmID = new SqlParameter("@MovieID",SqlDbType.Int);
filmID.Value = id;
Command.Parameters.Add(filmID);

至于返回select的纪录,你可以在类里面设置一个只读的公共属性
private int count
public int countRow
{
   get
{
   return count;
}
}

用函数来获取DataSet 用只度属性访问纪录。 也可以用ref 修饰符。不过一般对象操作还是用方法和属性成员就可以了。简洁为好
回复

使用道具 举报

2

主题

4

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
 楼主| 发表于 2020-2-6 18:15:01 | 显示全部楼层
上面的好心大哥!能完整一点吗?我菜阿!!求你了!!!!!
回复

使用道具 举报

0

主题

2

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-2-7 01:30:01 | 显示全部楼层
用SQLHelper吧,相当地好用。
回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-2-7 16:15:01 | 显示全部楼层
//你这样做一下
public DataSet filmdetails(int id)
{
SqlCommand Command = new SqlCommand("select_FilmDetails",connection);
Command.CommandType=CommandType.StoredProcedure;
SqlParameter filmID = new SqlParameter("@MovieID",SqlDbType.Int);
filmID.Value = id;
Command.Parameters.Add(filmID);
DataAdapter da = new DataAdapter(Command);
DataSet ds = new DataSet();
da.fill(ds);
return ds;
}
回复

使用道具 举报

2

主题

4

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
 楼主| 发表于 2020-2-8 11:30:01 | 显示全部楼层
ALTER PROCEDURE [dbo].[PageList]
(
    @PageSize int,                             --每页记录
    @PageIndex int,                            --当前页数,1开始
    @Condition varchar(8000),                  --查询条件,包括and,where,必须有一个条件如where 2>1
    @TheTable varchar(8000),                   --表名
    @SelectField varchar(8000),                --要选择的字段
    @OrderBy varchar (8000),                    --OrderBy字句,包括order
    @TableID   varchar (8000)                                 --table主键
)
AS
begin
declare @Sql varchar(8000)

--返回记录
set @Sql='select top ' + cast(@PageSize as varchar(10)) + ' ' + @SelectField + ' from ' + @TheTable + ' ' + @Condition + ' and '
    + @TableID +' not in (select top ' + cast((@PageSize*(@PageIndex-1)) as varchar(10))+' ' +@TableID+'  from ' + @TheTable + ' ' + @Condition
    + ' ' + @OrderBy +') ' + @OrderBy
exec(@sql)

--返回总数
set @Sql='select count(' + @TableID + ') from ' + @TheTable +' ' + @Condition
exec(@sql)
end
这样一个存储过程,怎样用C#调用!同时返回纪录集和总数阿?在线等等等等
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表