在C#中的多个表中使用存储过程插入

时间:2015-05-11 11:26:02

标签: c# stored-procedures sql-server-2014 insert-query

ALTER PROCEDURE [dbo].[sp_CreateProcess]
   @type varchar(50),--0
   @HospitalID varchar(50),--1
   @PatientID varchar(50) ,--2
   @PreAuthorization varchar(50) ,--3
   @Status varchar(50) ,--4
   @Amount varchar(50) ,--5
   @AmtWords varchar(500) ,--6
   @AppTrt varchar(50) ,--7
   @TypeTrt varchar(50) ,--8
   @AilName varchar(100) ,--9
   @AilCode varchar(50) ,--10
   @RoomType varchar(50) ,--11
   @RoomRent varchar(50) ,--12
   @Signature varchar(50) ,--13
   @ProcessBy varchar(50) ,--14
   @CorpScheme varchar(50) ,--15
   @InsuranceDiv varchar(50) ,--16
   @DrRmk varchar(50) ,--17
   @Created_Date datetime ,--18
   @Modified_Date datetime ,--19
   @Created_By varchar(50) ,--20
   @Modified_By varchar(50) ,--21
   @CoRmk varchar(100) ,--22
   @Remark varchar(1500) ,--23
   @CreatedBy varchar(50) ,--24
   @ModifiedBy varchar(50) ,--25
   @CreatedDate datetime ,--26
   @ModifiedDate datetime, --27
   @UserRole int --28
AS
BEGIN
    if @type = 'insertProcess'
    begin
        insert into Patient_Process_Status values
        (
            @HospitalID,
            @PatientID,
            @PreAuthorization,
            @Status,
            @AilName,
            @AilCode,
            @RoomType,
            @RoomRent,
            @Signature,
            @ProcessBy,
            @CorpScheme,
            @InsuranceDiv,
            @DrRmk,
            CURRENT_TIMESTAMP,
            CURRENT_TIMESTAMP,
            @Created_By,
            @Modified_By
        )

        update dbo.UserCommunication set RoleID=@UserRole
        where PatientID=@PatientID  and  HospitalID=@HospitalID

        update PD_Patients set LastUpdatedRole=@UserRole
        where PatientID=@PatientID and  HospitalID=@HospitalID

        insert into PostEnhancetbl values
        (
            @PatientID,
            @HospitalID,
            @Amount,
            @AmtWords,
            @AppTrt,
            @TypeTrt ,
            @CoRmk,
            @Remark,
            @CreatedBy,
            @ModifiedBy,
            CURRENT_TIMESTAMP,
            CURRENT_TIMESTAMP
        )

    end

    if @type='getTPADetails'
    begin
        select PS.*,LastUpdatedRole from Patient_Process_Status PS
        left join PD_Patients PD on PS.PatientID=PD.PatientID  and  PS.HospitalID=PD.HospitalID
        where PS.PatientID=@PatientID  and  PS.HospitalID=@HospitalID
    end
END

这是我得到的错误:

This is the Error facing in C# code **

上面的代码是我的SQL Server 2014存储过程,我希望将两个表连接起来并在2个表中插入表单值。

请帮我解决问题,让我知道为什么我面临字符串到日期时间转换的错误

1 个答案:

答案 0 :(得分:0)

这里的问题是您将string类型传递给datetime参数,并且无法将该字符串转换为日期时间。

检查参数并确保传递日期时间格式参数值,或者可以在SQL Server端使用CONVERT将参数转换为正确且有效的datetime格式。

您可以尝试使用DateTime variableName代替字符串variableName

希望这有帮助。