Click here to Skip to main content
15,920,111 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Arithmetic overflow error converting int to Numeric in stored procedure



string str;
                      str = ConfigurationManager.ConnectionStrings["ApplicationServices"].ConnectionString;
                      SqlConnection sqlCon = new SqlConnection(str);

                        sqlCon.Open();
                        SqlCommand SqlCmd = new SqlCommand("sp_genSimpleConvent", sqlCon);
                        SqlCmd.CommandType = System.Data.CommandType.StoredProcedure;

                        //Create and supply the output parameters

                        SqlCmd.Parameters.AddWithValue("@PRINCIPAL", SqlDbType.Decimal).Value = txt_Principal.Text;
                        SqlCmd.Parameters.AddWithValue("@INTEREST", SqlDbType.Decimal).Value = txt_Interest.Text;
                        SqlCmd.Parameters.AddWithValue("@TERM_MONTH", SqlDbType.Int).Value = txt_Term_Month.Text;
                        SqlCmd.Parameters.AddWithValue("@TERM_YEAR", SqlDbType.Int).Value = txt_Term_Year.Text;
                        SqlCmd.Parameters.AddWithValue("@DEDMONTH", SqlDbType.Decimal).Value = txt_Monthly.Text;
                        SqlCmd.Parameters.AddWithValue("@PARAMETERTYPE", SqlDbType.VarChar).Value = ddl_Payment_Type.SelectedValue;


                        int CMTH = DateTime.Now.Month;
                        int CYR  = DateTime.Now.Year;

                        int MMTH = 12 * CYR + CMTH;

                        SqlCmd.Parameters.AddWithValue("@CMTH", SqlDbType.Int).Value = CMTH;
                        SqlCmd.Parameters.AddWithValue("@CYR", SqlDbType.Int).Value  = CYR;
                        SqlCmd.Parameters.AddWithValue("@CMMTH", SqlDbType.Int).Value= MMTH;





What am I doing wrong?


ALTER PROCEDURE [dbo].[sp_genSimpleConvent]
(
@PRINCIPAL money,
@INTEREST money,
@TERM_MONTH Int,
@TERM_YEAR Int,
@DEDMONTH money,
@PARAMETERTYPE VarChar(30),
@CMTH Int,
@CYR Int,
@CMMTH Int,
@Return varchar(200) Output
)
AS
DELETE FROM SCHEDULE



Set @Return =@CMMTH

BEGIN


IF @PARAMETERTYPE='SIMPLE INTEREST'


BEGIN
DECLARE @MCCNT INT,
@MCOMPCNT INT,
@MDEDUCT MONEY,
@MAMTP MONEY,
@MPRINC MONEY,
@MINTR MONEY,
@MOUT MONEY,
@MOUTSTAND MONEY,
@RROUT MONEY,
@OPENING MONEY,
@MOND MONEY,
@CCMTH INT ,
@CCYR INT </pre>
Posted
Updated 7-Aug-14 2:00am
v2

1 solution

You're using AddWithValue() incorrectly.

C#
SqlCmd.Parameters.AddWithValue("@PRINCIPAL",Single.Parse(txt_Principal.Text,CultureInfo.InvariantCulture.NumberFormat));


or

C#
SqlCmd.Parameters.Add("@PRINCIPAL", SqlDbType.Decimal);
SqlCmd.Parameters["@PRINCIPAL"].Value = Single.Parse(txt_Principal.Text, CultureInfo.InvariantCulture.NumberFormat);
 
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