C#调用存储过程

1、

 SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=ZKWebForm121920170831(删减版);User ID=sa;Password=123");
            conn.Open();
            SqlCommand command = conn.CreateCommand();
            //设置执行语句类型为存储过程  
            command.CommandType = CommandType.StoredProcedure;
            //指定存储过程名字           
            command.CommandText = "[dbo].[USP_Product_GetPaged2]";
            command.Parameters.Add("@WhereClause", SqlDbType.VarChar, 2000).Value = DBNull.Value;
            command.Parameters.Add("@OrderBy", SqlDbType.VarChar, 2000).Value = "ID DESC";
            command.Parameters.Add("@PageIndex", SqlDbType.Int).Value = 0;
            command.Parameters.Add("@PageSize", SqlDbType.Int).Value = 10;

            SqlDataReader sdr = command.ExecuteReader();

            DataTable dt = new DataTable();
            dt.Columns.Add(new DataColumn("ID"));
            dt.Columns.Add(new DataColumn("ProjectName"));
            dt.Columns.Add(new DataColumn("ContractNumber"));

            DataRow dr = dt.NewRow();
            int i = 0;
            while (sdr.Read())
            {
                //添加行列
                dr = dt.NewRow();
                dr["ID"] = sdr[0];
                dr["ProjectName"] = sdr[1];
                dr["ContractNumber"] = sdr[2];
                dt.Rows.Add(dr);

                //读取行列
                //dr["ID"] = dt.Rows[i]["ID"] = sdr[1];
                //dt.Rows.Add(dt.Rows[i]["ID"]);
                //dt.Rows.Add(dt.Rows[i]["ProjectName"]);              
            }
            GridView1.DataSource = dt;
            GridView1.DataBind();

存储过程:

USE [ZKWebForm121920170831(删减版)]
GO
/****** Object:  StoredProcedure [dbo].[USP_Product_GetPaged2]    Script Date: 09/28/2017 15:24:47 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- Batch submitted through debugger: SQLQuery2.sql|7|0|C:\Users\JM\AppData\Local\Temp\~vs60C9.sql
ALTER PROCEDURE [dbo].[USP_Product_GetPaged2]
    @WhereClause VARCHAR (2000),
    @OrderBy VARCHAR (2000),
    @PageIndex INT,
    @PageSize INT
AS
    BEGIN
        DECLARE @PageLowerBound INT, @PageUpperBound INT

        SET @PageLowerBound = @PageSize * @PageIndex
        SET @PageUpperBound = @PageLowerBound + @PageSize

        CREATE TABLE #PageIndex
        (
            [IndexID] INT IDENTITY (1, 1) NOT NULL,
            [ID] INT 
        )

        DECLARE @SQL AS NVARCHAR(4000)

        SET @SQL = 'INSERT INTO #PageIndex ([ID])'
        SET @SQL = @SQL + ' SELECT'
        IF @PageSize > 0
            SET @SQL = @SQL + ' TOP ' + CONVERT(NVARCHAR, @PageUpperBound)
        SET @SQL = @SQL + ' [ID]'
        SET @SQL = @SQL + ' FROM [dbo].[LbtProjectInfo]'
        IF LEN(@WhereClause) > 0
            SET @SQL = @SQL + ' WHERE ' + @WhereClause
        IF LEN(@OrderBy) > 0
            SET @SQL = @SQL + ' ORDER BY ' + @OrderBy
print @sql
        EXEC (@SQL)

        SELECT
            TempTable.[ID], 
            TempTable.[ProjectName], 
            TempTable.[ContractNumber]
        FROM
            [dbo].[LbtProjectInfo] TempTable
        INNER JOIN
            #PageIndex PageIndex
        ON
            TempTable.[ID] = PageIndex.[ID]
        WHERE
            PageIndex.IndexID > @PageLowerBound
        AND
            PageIndex.IndexID <= @PageUpperBound
        ORDER BY
            PageIndex.IndexID

---       查询项目信息的总条数
--        SET @SQL = 'SELECT COUNT(*) AS TotalRowCount'
--        SET @SQL = @SQL + ' FROM [dbo].[LbtProjectInfo]'
--        IF LEN(@WhereClause) > 0
--        SET @SQL = @SQL + ' WHERE ' + @WhereClause
---        打印sql语句
--         print @sql
--         EXEC (@SQL)
   
    END


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值