调用sqlserver中的存储过程

1、存储过程名

string strSQL = "usp_GetUnReturnPassports";

2、创建数据库对象 database

Database db = DatabaseFactory.CreateDatabase(ConfigHelper.CurrentConfig.LocalDBName);

3、创建数据库命令对象 DbCommand

DbCommand command = db.GetStoredProcCommand(strSQL);

4、添加参数

db.AddInParameter(command, "unitCode", DbType.String, unitCode.Substring(0, 3));
   db.AddInParameter(command, "startDate", DbType.DateTime, startDate);
   db.AddInParameter(command, "endDate", DbType.DateTime, endDate);

5、执行命令

DataSet ds = db.ExecuteDataSet(command);

6、读取结果

for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
   {

PassportBR one = new PassportBR();
    one.Id = int.Parse(ds.Tables[0].Rows[i][0].ToString());

。。。。

}

额外知识点补充:

1、上面存储过程的写法

USE [cnpc]
GO
/****** Object:  StoredProcedure [dbo].[usp_GetUnReturnPassports]    Script Date: 05/23/2018 09:26:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:        zhengwei 18963948278
-- Create date: 2016-12-28
-- Description:    获取应归还证照
-- =============================================
ALTER PROCEDURE [dbo].[usp_GetUnReturnPassports]
(
    @unitCode nvarchar(6),    
    @startDate datetime,
    @endDate datetime
)
AS
BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    SET NOCOUNT ON;

    select b.Id,b.PassportNumber,b.Name,b.Xmbm,b.processedUnit,b.BorrowDate,b.ReceiverName,b.ReceiverTel,b.CashPledge,
    b.MustReturnDate,b.ReturnDate,b.Depositary,b.RWPJLetterNumber,b.GroupName,b.BProcessedBy,b.RProcessedBy 
    from [PassportBR] b
    left join hzhk k on b.passportNumber=k.hzhhm
    left join ryk on ryk.xmbm=b.xmbm
    where k.IsSetDeleted=0 and k.jchqk='Y' and k.xhrq is null and k.zhxrq is null and k.jzhrq>GETDATE()
    --未标记删除的,借出状态的,未销毁的,未注销的,有效期内的
    and b.RprocessedBy is null and b.MustReturnDate>'2016-8-1'
    --未归还的,应归还日期是2016-8-1之后的
    and (b.processedUnit=@unitCode or ryk.gzdw=@unitCode) and b.MustReturnDate between @startDate and @endDate
    --护照保管单位+工作单位
END
原文地址:https://www.cnblogs.com/zhengwei-cq/p/9075411.html