C# WINFORM 怎么调用SQL存储过程,要在窗体上显示各种效果的 100
这是我的界面,图中表格是listView,要能显示数据总数,共几页,当前第几页,然后点击“下一页”能翻页,还有数据能显示在listView中,以下是我的存储过程USE[d...
这是我的界面,图中表格是listView,要能显示数据总数,共几页,当前第几页,然后点击“下一页”能翻页,还有数据能显示在listView中,
以下是我的存储过程
USE [dm]
GO
/****** Object: StoredProcedure [dbo].[CCGC] Script Date: 2015/12/2 9:01:20 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[CCGC]
@tblName nvarchar(255), -- 表名
@fldName nvarchar(255), -- 主键字段名
@PageSize int=15 , -- 页尺寸
@PageIndex int =1 output , -- 当前页码
@Pagecount int output, --总页数
@Countsql int output,--数据总数
@IsReCount bit, -- 返回记录总数, 非 0 值则返回
@OrderType bit, -- 设置排序类型, 非 0 值则降序
@strWhere nvarchar(1000) = "CNAddress like '北京%'" -- 查询条件 (注意: 不要加 where)
AS
declare @strSQL nvarchar(2000) -- 主语句
declare @strTmp nvarchar(2000) -- 临时变量(查询条件过长时可能会出错,可修改100为1000)
declare @strOrder nvarchar(400) -- 排序类型
if @OrderType != 0 --如果排序类型不为0
begin
set @strTmp = '<(select min'
set @strOrder = ' order by [' + @fldName +'] desc'
end
else
begin
set @strTmp = '>(select max'
set @strOrder = ' order by [' + @fldName +'] asc'
end
set @strSQL = 'select top ' + str(@PageSize) + ' * from ['
+ @tblName + '] where [' + @fldName + ']' + @strTmp + '(['
+ @fldName + ']) from (select top ' + str((@PageIndex-1)*@PageSize) + ' ['
+ @fldName + '] from [' + @tblName + ']' + @strOrder + ') as tblTmp)'
+ @strOrder
if @strWhere != '' --如果查询条件不为空
set @strSQL = 'select top ' + str(@PageSize) + ' * from ['
+ @tblName + '] where [' + @fldName + ']' + @strTmp + '(['
+ @fldName + ']) from (select top ' + str((@PageIndex-1)*@PageSize) + ' ['
+ @fldName + '] from [' + @tblName + '] where ' + @strWhere + ' '
+ @strOrder + ') as tblTmp) and ' + @strWhere + ' ' + @strOrder
if @strWhere ='' --如果查询条件为空
set @strSQL='select @countSql=Count(' + @fldName + ') FROM '+@tblName
else
set @strSQL='select @Countsql=Count(' + @fldName + ') FROM '+@tblName+'where'+@strWhere
exec sp_executesql @strSQL,N'@Countsql int out ',@Countsql out
if @Countsql<=@PageSize --当数据总数量小于等于每页条数
set @Pagecount=1 --总页数为1
else
set @Pagecount = (@Countsql / @PageSize) + 1
if @PageIndex <> 0
begin
set @strTmp =''
if @strWhere != ''
set @strTmp = ' where ' + @strWhere
set @strSQL = 'select top ' + str(@PageSize) + ' * from ['
+ @tblName + ']' + @strTmp + ' ' + @strOrder
exec (@strSQL)
end
if @IsReCount != 0
begin
set @strSQL = 'select count(*) as Total from [' + @tblName + ']'+' where ' + @strWhere
exec (@strSQL)
end
我第一次接触存储过程,最好是根据我的例子能够手打一份,越简单越好,各位大大,再多金币也换不到知识,我只能悬赏最多的金币了,希望能帮帮我这个新手,敬谢! 展开
以下是我的存储过程
USE [dm]
GO
/****** Object: StoredProcedure [dbo].[CCGC] Script Date: 2015/12/2 9:01:20 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[CCGC]
@tblName nvarchar(255), -- 表名
@fldName nvarchar(255), -- 主键字段名
@PageSize int=15 , -- 页尺寸
@PageIndex int =1 output , -- 当前页码
@Pagecount int output, --总页数
@Countsql int output,--数据总数
@IsReCount bit, -- 返回记录总数, 非 0 值则返回
@OrderType bit, -- 设置排序类型, 非 0 值则降序
@strWhere nvarchar(1000) = "CNAddress like '北京%'" -- 查询条件 (注意: 不要加 where)
AS
declare @strSQL nvarchar(2000) -- 主语句
declare @strTmp nvarchar(2000) -- 临时变量(查询条件过长时可能会出错,可修改100为1000)
declare @strOrder nvarchar(400) -- 排序类型
if @OrderType != 0 --如果排序类型不为0
begin
set @strTmp = '<(select min'
set @strOrder = ' order by [' + @fldName +'] desc'
end
else
begin
set @strTmp = '>(select max'
set @strOrder = ' order by [' + @fldName +'] asc'
end
set @strSQL = 'select top ' + str(@PageSize) + ' * from ['
+ @tblName + '] where [' + @fldName + ']' + @strTmp + '(['
+ @fldName + ']) from (select top ' + str((@PageIndex-1)*@PageSize) + ' ['
+ @fldName + '] from [' + @tblName + ']' + @strOrder + ') as tblTmp)'
+ @strOrder
if @strWhere != '' --如果查询条件不为空
set @strSQL = 'select top ' + str(@PageSize) + ' * from ['
+ @tblName + '] where [' + @fldName + ']' + @strTmp + '(['
+ @fldName + ']) from (select top ' + str((@PageIndex-1)*@PageSize) + ' ['
+ @fldName + '] from [' + @tblName + '] where ' + @strWhere + ' '
+ @strOrder + ') as tblTmp) and ' + @strWhere + ' ' + @strOrder
if @strWhere ='' --如果查询条件为空
set @strSQL='select @countSql=Count(' + @fldName + ') FROM '+@tblName
else
set @strSQL='select @Countsql=Count(' + @fldName + ') FROM '+@tblName+'where'+@strWhere
exec sp_executesql @strSQL,N'@Countsql int out ',@Countsql out
if @Countsql<=@PageSize --当数据总数量小于等于每页条数
set @Pagecount=1 --总页数为1
else
set @Pagecount = (@Countsql / @PageSize) + 1
if @PageIndex <> 0
begin
set @strTmp =''
if @strWhere != ''
set @strTmp = ' where ' + @strWhere
set @strSQL = 'select top ' + str(@PageSize) + ' * from ['
+ @tblName + ']' + @strTmp + ' ' + @strOrder
exec (@strSQL)
end
if @IsReCount != 0
begin
set @strSQL = 'select count(*) as Total from [' + @tblName + ']'+' where ' + @strWhere
exec (@strSQL)
end
我第一次接触存储过程,最好是根据我的例子能够手打一份,越简单越好,各位大大,再多金币也换不到知识,我只能悬赏最多的金币了,希望能帮帮我这个新手,敬谢! 展开
展开全部
using (SqlConnection conn = new SqlConnection(strConn))
{
conn.Open();
using (SqlCommand cmd = new SqlCommand("p_android_accept_ware_check", conn))
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@tblName", SqlDbType.VarChar).Value = "参数值";
cmd.Parameters.Add("@vefldName SqlDbType.VarChar).Value = "参数值"
cmd.Parameters.Add("@Pagecount", SqlDbType.VarChar).Direction = ParameterDirection.Output;
using (DataSet ds = new DataSet())
{
using (SqlDataAdapter adp = new SqlDataAdapter(cmd))
{
adp.Fill(ds);
adp.Dispose();
}
string outputparam1=cmd.Parameters.Add("@Pagecount", SqlDbType.VarChar).value;//这里是调用output参数的值
listview.datasource=ds.tables[0].defaultview;//这里是给listview绑定数据源
}}}
大概 就是这么个东西,你自己完善一下。
{
conn.Open();
using (SqlCommand cmd = new SqlCommand("p_android_accept_ware_check", conn))
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@tblName", SqlDbType.VarChar).Value = "参数值";
cmd.Parameters.Add("@vefldName SqlDbType.VarChar).Value = "参数值"
cmd.Parameters.Add("@Pagecount", SqlDbType.VarChar).Direction = ParameterDirection.Output;
using (DataSet ds = new DataSet())
{
using (SqlDataAdapter adp = new SqlDataAdapter(cmd))
{
adp.Fill(ds);
adp.Dispose();
}
string outputparam1=cmd.Parameters.Add("@Pagecount", SqlDbType.VarChar).value;//这里是调用output参数的值
listview.datasource=ds.tables[0].defaultview;//这里是给listview绑定数据源
}}}
大概 就是这么个东西,你自己完善一下。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询