i trying below code inserting records database via stored procedure.
first time loop insert record after second time shows me error on executenonquery
:
procedure or function sp_functional_title_master_insert has many arguments specified.
please help.
public int insertdata(datatable objlst) { string query = "sp_functional_title_master_insert"; try { sqlcommand cmdcommand = new sqlcommand(query, connectionclass.openconnection()); foreach (datarow dr in objlst.rows) { cmdcommand.commandtype = commandtype.storedprocedure; cmdcommand.parameters.addwithvalue("@code",convert.toint64( dr["code"])); cmdcommand.parameters.addwithvalue("@designation", dr["designation"]); cmdcommand.parameters.addwithvalue("@group", dr["group"]); cmdcommand.executenonquery(); issavedcount += 1; } } catch (exception ex) { throw ex; } { connectionclass.closeconnection(); } return issavedcount; }
this "fix it".
foreach (datarow dr in objlst.rows) { cmdcommand.parameters.clear();
but you'd better off doing this
(create parameters outside loop , set parameters inside loop)
command.parameters.add(new sqlparameter("@code", sqldbtype.bigint)); /* fix datatype here */ command.parameters.add(new sqlparameter("@designation", sqldbtype.varchar, 128)); /* fix datatype , optional "size" here */ command.parameters.add(new sqlparameter("@group", sqldbtype.varchar, 128)); /* fix datatype , optional "size" here */ foreach (datarow dr in objlst.rows) { command.parameters["@code"].value = convert.toint64( dr["code"]); command.parameters["@designation"].value = dr["designation"]; command.parameters["@group"].value = dr["group"]; command.executenonquery(); }
Comments
Post a Comment