Click here to Skip to main content
15,887,880 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Dear All

i searched on google but did not find exact solution.. pls help to resolve this problem..

I have a procedure and i am using to insert values in table..like below
but i got error like:-
The SqlParameterCollection only accepts non-null SqlParameter type objects, not String objects.



This PROCEDURE



alter PROCEDURE ReadInsert
(
@HSCP_FILE_NAME char(50)
)

as
Begin
declare @PLANT_CD char(10)
declare @NEW_SUPP_CD char(20)
declare @NEW_SUPP_LOC char(10)
declare @SUPP_LOC_PROV_STAT char(10)
declare @SUPP_INVOICE_DT char(20)
declare @NEWINVOICENO char(20)
declare @PART_RCV_DT char(10)

declare @OE_INVOICE_NUM char(20)
declare @FORM31NO char(20)
declare @FINYEAR char(10)

declare @AvgD19 float
declare @SumD16 float
declare @SumD24 float
declare @RoundD24 float
declare @RoundD16 float
declare @ValueSalesTxNw float
declare @RoundD21 float


@OEFILE char(50)=null
@VATFILE char(50)=null



select TOP 1 @PLANT_CD = D4_PLANT_CODE from HSCP_DETAIL_CSV where HSCP_FILE_NAME = @HSCP_FILE_NAME

select TOP 1 @NEW_SUPP_CD = D5_VENDOR_CODE from HSCP_DETAIL_CSV where HSCP_FILE_NAME = @HSCP_FILE_NAME

select TOP 1 @NEW_SUPP_LOC = D6_VENDOR_LOC from HSCP_DETAIL_CSV where HSCP_FILE_NAME = @HSCP_FILE_NAME

select TOP 1 @SUPP_LOC_PROV_STAT = D7_VENDOR_SUPPLY_STATE from HSCP_DETAIL_CSV where HSCP_FILE_NAME = @HSCP_FILE_NAME

select TOP 1 @SUPP_INVOICE_DT = D8_INVOICE_DATE from HSCP_DETAIL_CSV where HSCP_FILE_NAME = @HSCP_FILE_NAME

select TOP 1 @NEWINVOICENO = D26_INVOICE_NO from HSCP_DETAIL_CSV where HSCP_FILE_NAME = @HSCP_FILE_NAME

select TOP 1 @PART_RCV_DT = D14_PART_RECEIVED_DATE_AT_HCIL from HSCP_DETAIL_CSV where HSCP_FILE_NAME = @HSCP_FILE_NAME

select TOP 1 @OE_INVOICE_NUM = D9_INVOICE_NO_OF_THE_SUPPLIER from HSCP_DETAIL_CSV where HSCP_FILE_NAME = @HSCP_FILE_NAME

select TOP 1 @FORM31NO = D28_FORM31_NO from HSCP_DETAIL_CSV where HSCP_FILE_NAME = @HSCP_FILE_NAME

select TOP 1 @FINYEAR = D27_FIN_YEAR from HSCP_DETAIL_CSV where HSCP_FILE_NAME = @HSCP_FILE_NAME

select @AvgD19 = avg(D16_BASIC_PART_COST)from HSCP_DETAIL_CSV group by D26_INVOICE_NO , HSCP_FILE_NAME having HSCP_FILE_NAME = @HSCP_FILE_NAME

select @SumD16 = sum(D16_BASIC_PART_COST)from HSCP_DETAIL_CSV group by D26_INVOICE_NO , HSCP_FILE_NAME having HSCP_FILE_NAME = @HSCP_FILE_NAME

select @SumD24 = sum(D24_EXCISE_AMOUNT)from HSCP_DETAIL_CSV group by D26_INVOICE_NO , HSCP_FILE_NAME having HSCP_FILE_NAME = @HSCP_FILE_NAME

select @RoundD24 = round (sum(D24_EXCISE_AMOUNT),0) from HSCP_DETAIL_CSV group by D26_INVOICE_NO , HSCP_FILE_NAME having HSCP_FILE_NAME = @HSCP_FILE_NAME

select @RoundD16 = round (sum(D16_BASIC_PART_COST),0) from HSCP_DETAIL_CSV group by D26_INVOICE_NO , HSCP_FILE_NAME having HSCP_FILE_NAME = @HSCP_FILE_NAME


select @RoundD21 = round (sum(D21_PURCHASE_COST),0) from HSCP_DETAIL_CSV group by D26_INVOICE_NO , HSCP_FILE_NAME having HSCP_FILE_NAME = @HSCP_FILE_NAME




INSERT INTO MAIN_OE_HEADER ( PLANT_CD , NEW_SUPP_CD , NEW_SUPP_LOC , SUPP_LOC_PROV_STAT , SUPP_INVOICE_DT , NEWINVOICENO , PART_RCV_DT , PART_DESC , SALES_TAX_RATE ,

INVENTORY , TOTAL_EXCISE , TOTAL_EXCISE1 , INVENTORY_NEW , TOTAL_EXCISE_NEW , SALES_TAX_NEW , TOTAL_INVOICE_AMT , STATUS , OE_INVOICE_NUM , FORM31NO , FINYEAR , OEFILE

, VATFILE) VALUES
(@PLANT_CD , @NEW_SUPP_CD , @NEW_SUPP_LOC , @SUPP_LOC_PROV_STAT , @SUPP_INVOICE_DT , @NEWINVOICENO , @PART_RCV_DT , 'AUTOPARTS' , @AvgD19 , @SumD16 , @SumD24 ,

@RoundD24 , @RoundD16 , @RoundD24 , 10 , @RoundD21 , 0 , @OE_INVOICE_NUM , @FORM31NO , @FINYEAR , @OEFILE , @VATFILE )











End
GO





This Frontant to call the Procedure

con.Open();
cmd=new sqlCammadn();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "ReadInsert";
cmd.Parameters.Add("@HSCP_FILE_NAME", SqlDbType.Char,50).Value = FileName;
cmd.ExecuteNonQuery();
con.Close();
sr.Close();




Error Generate is like below:-


The SqlParameterCollection only accepts non-null SqlParameter type objects, not String objects.

Please help to resolve this problem...
Posted

1 solution

Change this:
C#
cmd.Parameters.Add("@HSCP_FILE_NAME", SqlDbType.Char,50).Value = FileName;

To this:
C#
cmd.Parameters.AddWithValue("@HSCP_FILE_NAME", FileName);
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900