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

问题描述 投票:0回答:1
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存储过程,我想连接两个表,并在两个表中插入我的表单值,请帮助我解决这个问题,让我知道为什么我面临字符串到日期时间的转换错误。

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

c# stored-procedures sql-server-2014 insert-query
1个回答
0
投票

这里的问题是,你传递的是一个 string 打成 datetime 参数,而它却无法将该字符串转换为日期时间。

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

你可以尝试使用 DateTime variableName 而不是字符串 variableName.

希望能帮到你

© www.soinside.com 2019 - 2024. All rights reserved.