HEEN
HEEN

Reputation: 4721

Failed to convert parameter value from a String to a Decimal Error

I want to insert data into the table using Storedprocedure.

I have written code like below

OracleConnection ObjPriCon = new OracleConnection(System.Configuration.ConfigurationManager.ConnectionStrings["OracleConn"].ToString());
    ObjPriCon.Open();
    string spquery = "xxcus.pn_insert_grid_agreeement";
    OracleCommand cmd = new OracleCommand(spquery, ObjPriCon);
    cmd.CommandType = CommandType.StoredProcedure;

    cmd.Parameters.Add("Mkey", OracleType.Number).Value = e.Record["Mkey"];
    cmd.Parameters.Add("GrdType", OracleType.VarChar).Value = e.Record["grd_type"];
    cmd.Parameters.Add("firstname", OracleType.VarChar).Value = e.Record["f_name"];
    cmd.Parameters.Add("lastname", OracleType.VarChar).Value = e.Record["l_name"];

    cmd.Parameters.Add("contactdet", OracleType.Number).Value = e.Record["cont_det"];
    cmd.Parameters.Add("pancardDet", OracleType.VarChar).Value = e.Record["pancard_det"];
    cmd.Parameters.Add("trantype", OracleType.VarChar).Value = "GDS";
    cmd.Parameters.Add("createdby", OracleType.Number).Value = Request.QueryString["userid"].ToString();

    cmd.Parameters.Add("creationdate", OracleType.DateTime).Value = DateTime.Now.ToString("dd/MM/yyyy");
    cmd.Parameters.Add("lastUpdateDate", OracleType.DateTime).Value = DateTime.Now.ToString("dd/MM/yyyy");
    cmd.Parameters.Add("lastUpdatedBy", OracleType.Number).Value = Request.QueryString["userid"].ToString();
    cmd.Parameters.Add("deleteflag", OracleType.Char).Value = "N";

    cmd.ExecuteNonQuery();
    ObjPriCon.Close();

But at cmd.ExecuteNonQuery() I am getting error as

Failed to convert parameter value from a String to a Decimal.

I don't understand where the error is

Also see my SP structure

CREATE OR REPLACE PROCEDURE XXCUS.pn_insert_grid_agreeement (
       mkey               NUMBER,  
       GrdType           VARCHAR2,
       firstname             VARCHAR2,
       lastname             VARCHAR2,
       contactdet           NUMBER,
       pancardDet        VARCHAR2,
       trantype          VARCHAR2,
       createdby         NUMBER,
       creationdate      DATE,
       lastUpdateDate   DATE,
       lastUpdatedBy    NUMBER,
       deleteflag        CHAR
    )
    IS
    BEGIN
       INSERT INTO xxcus.xxacl_pn_grid_agreement
                   (MKEY, grd_type, f_name, l_name, cont_det, pancard_det, tran_type,
                    created_by, creation_date, last_update_date,
                    last_updated_by, delete_flag
                   )
            VALUES (mkey, GrdType, firstname,lastname, contactdet,pancardDet, trantype,
                    createdby, creationdate, lastUpdateDate,
                    lastUpdatedBy, deleteflag
                   );
    END;

Kindly suggest what is wrong here

UDPATE

Mkey is auto incremented column.

Upvotes: 0

Views: 602

Answers (1)

serhiyb
serhiyb

Reputation: 4833

Try replacing:

cmd.Parameters.Add("createdby", OracleType.Number).Value = Request.QueryString["userid"].ToString();
cmd.Parameters.Add("lastUpdatedBy", OracleType.Number).Value = Request.QueryString["userid"].ToString();

With:

cmd.Parameters.Add("lastUpdatedBy", OracleType.Number).Value = Convert.ToInt32(Request.QueryString["userid"]);
cmd.Parameters.Add("createdby", OracleType.Number).Value = Convert.ToInt32(Request.QueryString["userid"]);

Upvotes: 1

Related Questions