Hi i am using Stored Procedure
ALTER PROCEDURE [dbo].[SP_InsTicketSale]
(
@TktDate date, @TktId nvarchar(50),@Name nvarchar(50), @Email nvarchar(50), @Mobile varchar(15),@TktStatus nvarchar(50)
,
@EmpId nvarchar(50),@TblLoc_ID varchar(3), @Promoid nvarchar(50), @TaxId nvarchar(50), @Grandtotal decimal(18,2),@subtotal decimal(18,2),
@Details ITEMDATA1 Readonly,
@id nvarchar(5) = NULL OUTPUT
)
AS
BEGIN
if not exists(select * from Tbl_TicketSale where TktId= @TktId)
Begin
declare @IdTmp varchar(5)
set @IdTmp = 00000
select @IdTmp = count(*) from Tbl_TicketSale
set @IdTmp = @IdTmp + 1
set @TktId= Right(('00000' + @IdTmp),5)
Begin Transaction
INSERT INTO Tbl_Client(TktDate, TktId, Name, Email, Mobile)
VALUES (@TktDate, @TktId,@Name, @Email, @Mobile)
IF (@@ERROR <> 0) GOTO ERR_HANDLER
INSERT INTO Tbl_TicketSale (TktId, EmpId, TktDate, TblLoc_ID, TaxId, Grandtotal,subtotal,TktStatus)
VALUES (@TktId , @EmpId, @TktDate, @TblLoc_ID, @TaxId , @Grandtotal ,@subtotal,'Delivered')
IF (@@ERROR <> 0) GOTO ERR_HANDLER
INSERT INTO Tbl_TicketSaleChild (TktId, ActivityId, Qty, PoxtypeAC, ActPrice, Amt, TktSale_childdate)
Select TktId=@TktId, tActivityId, tQty, tPoxtypeAC, tActPrice, tAmt, tTktSale_childdate from @Details ;
IF (@@ERROR <> 0) GOTO ERR_HANDLER
End
Commit Transaction
Return @TktId
ERR_HANDLER:
PRINT 'Unexpected error occurred!'
ROLLBACK Transaction
RETURN 1
END
and C# i am using
public void InsetTicketSale()
{
int i = 0;
try
{
SqlDBHelper SqlDb = new SqlDBHelper();
SqlDb.CreateParameters("@TktDate", SqlDbType.Date, TktDate);
SqlDb.CreateParameters("@TktId", SqlDbType.VarChar, TktId);
SqlDb.CreateParameters("@Name", SqlDbType.VarChar, Name);
SqlDb.CreateParameters("@Email", SqlDbType.VarChar, Email);
SqlDb.CreateParameters("@Mobile", SqlDbType.VarChar, Mobile);
SqlDb.CreateParameters("@EmpId", SqlDbType.VarChar, EmpId);
SqlDb.CreateParameters("@TblLoc_ID", SqlDbType.VarChar, TblLoc_ID);
SqlDb.CreateParameters("@Promoid", SqlDbType.VarChar, Promoid);
SqlDb.CreateParameters("@TaxId", SqlDbType.VarChar, TaxId);
SqlDb.CreateParameters("@Grandtotal", SqlDbType.Decimal, Grandtotal);
SqlDb.CreateParameters("@subtotal", SqlDbType.Decimal, subtotal);
SqlDb.CreateParameters("@Details", SqlDbType.Structured, Details);
SqlDb.CreateParameters("@Servtax", SqlDbType.Decimal, Servtax);
SqlDb.CreateParameters("@vat", SqlDbType.Decimal, vat);
SqlDb.CreateParameters("@Tax3", SqlDbType.Decimal, Tax3);
SqlDb.CreateParameters("@Servtaxp", SqlDbType.Decimal, Servtaxp);
SqlDb.CreateParameters("@vatp", SqlDbType.Decimal, vatp);
SqlDb.CreateParameters("@Tax3p", SqlDbType.Decimal, Tax3p);
SqlDb.CreateParameters("@TktStatus", SqlDbType.VarChar, TktStatus);
SqlDb.ProcedureName = "[SP_InsTicketSale]";
i = Convert.ToInt32(SqlDb.ExecuteNonQueryReturn());
}
catch (Exception Excep)
{
throw new ApplicationException(Excep.Message);
}
}
What I have tried:
in C# i have tried int type and executenonquery() it was getting count of transactions done,
i am getting null as when used string and executescalar combination