如何使用数据集获取返回值形式的存储过程

时间:2018-08-12 11:48:48

标签: c# asp.net sql-server

我有这个存储过程,我需要从中获取返回值

ALTER PROCEDURE [dbo].[sp_TenantDetails_insert]
    @TDtypeid NVARCHAR(10), 
    @TDtypeEn NVARCHAR(50), 
    @TDtypeAr NVARCHAR(50), 
    @TDNameEn NVARCHAR(MAX),
    @TDNameAr NVARCHAR(MAX),
    @TDportfolionameEn NVARCHAR(MAX), 
    @TDportfolionameAr NVARCHAR(MAX), 
    @TDpropertynameEn NVARCHAR(MAX), 
    @TDpropertynameAr NVARCHAR(MAX), 
    @TDoffice_code NVARCHAR(MAX),  
    @TDps_contract_hdr_code NVARCHAR(MAX),  
    @TDcivil_id NVARCHAR(MAX), 
    @TDmobile NVARCHAR(50), 
    @TDemail NVARCHAR(50), 
    @TDportfolio_code NVARCHAR(50),
    @TDproperty_code NVARCHAR(50),  
    @TDunit_nick_name NVARCHAR(MAX), 
    @TDstartdate NVARCHAR(50),
    @TDendtdate NVARCHAR(50), 
    @TDmon_rent NVARCHAR(50),
    @PayType NVARCHAR(50),
    @TDTotMonths INT
AS
BEGIN
    SET NOCOUNT ON;

    DECLARE @tenantid Int

    INSERT INTO tbl_ream_TenantDetails(R_typeId,R_typeEn, R_typeAr, R_tenantNameEn, R_tenantNameAr,R_portfolionameEn, R_portfolionameAr, R_propertynameEn, R_propertynameAr, R_office_code,  R_ps_contract_hdr_code,  R_civil_id, R_mobile,R_email, R_portfolio_code,R_property_code,  R_unit_nick_name, R_startdate,R_endtdate, R_mon_rent, R_pay_type, R_tot_months)
    VALUES (@TDtypeid, @TDtypeEn, @TDtypeAr, @TDNameEn, @TDNameAr, 
            @TDportfolionameEn, @TDportfolionameAr, @TDpropertynameEn, 
            @TDpropertynameAr, @TDoffice_code, @TDps_contract_hdr_code,  
            @TDcivil_id, @TDmobile, @TDemail, @TDportfolio_code, 
            @TDproperty_code, @TDunit_nick_name, @TDstartdate, @TDendtdate, 
            @TDmon_rent, @PayType, @TDTotMonths) 

    SET @tenantid = SCOPE_IDENTITY()

    RETURN @tenantid

    SET NOCOUNT OFF
END

我已经创建了一个数据集并将其作为查询添加到数据集中

我尝试使用以下代码获取值,但它返回0而不是SCOPE_IDENTITY()

 public int GetInsertId(string typeId, string typeEn, string typeAr, string tenantNameEn, string tenantNameAr, string portfolionameEn, string portfolionameAr, string propertynameEn, string propertynameAr, string office_code, string ps_contract_hdr_code, string civil_id, string mobile, string email, string portfolio_code, string property_code, string unit_nick_name, string startdate, string endtdate, string mon_rent, string pay_type, int tot_months)
    {

        try
        {
            //int objResult = 0;
            //DataTable dt = new DataTable();
            //dt = AdapterTenantSelectDetailsInsert.sp_TenantDetailsInsert(typeId, typeEn, typeAr, tenantNameEn, tenantNameAr, portfolionameEn, portfolionameAr, propertynameEn, propertynameAr, office_code, ps_contract_hdr_code, civil_id, mobile, email, portfolio_code, property_code, unit_nick_name, startdate, endtdate, mon_rent, pay_type, tot_months);
            //if (dt.Rows.Count > 0)
            //{
            //    DataRow UserRow = dt.Rows[0];
            //    objResult = int.Parse(UserRow[0].ToString()) ;
            //}

            //var test = AdapterTenantSelectDetailsInsert.sp_TenantDetails_insert(typeId, typeEn, typeAr, tenantNameEn, tenantNameAr, portfolionameEn, portfolionameAr, propertynameEn, propertynameAr, office_code, ps_contract_hdr_code, civil_id, mobile, email, portfolio_code, property_code, unit_nick_name, startdate, endtdate, mon_rent, pay_type, tot_months);
            int objResult = 0;
            objResult = Convert.ToInt32((AdapterTenantSelectDetailsInsert.sp_TenantDetails_insert(typeId, typeEn, typeAr, tenantNameEn, tenantNameAr, portfolionameEn, portfolionameAr, propertynameEn, propertynameAr, office_code, ps_contract_hdr_code, civil_id, mobile, email, portfolio_code, property_code, unit_nick_name, startdate, endtdate, mon_rent, pay_type, tot_months)));
            return objResult;

        }
        catch (Exception)
        {
            throw;
        }
    }

0 个答案:

没有答案