c# - Using String.Format when passing DateTime arguments type to DB. Exception is thrown. What is wrong? -
object args = new object[] { "project", "projectname", "@prname", "projectstartdate", "@startdate", "projectenddate", "@enddate", "projectid", "@id" };
//******************this line causes exception thrown *******************
string commandstring = string.format(@"update {0} set {1} = {2}, {3} = {4} , {5} = {6} {7} = {8}", args); command.commandtext = commandstring; command.commandtype = commandtype.text; command.connection = connection; command.parameters.add("@id", sqldbtype.int).value = selid; command.parameters.add("@prname", sqldbtype.text).value = projectname; command.parameters.add("@startdate", sqldbtype.datetime).value = startdate; command.parameters.add("@enddate", sqldbtype.datetime).value = enddate; connection.open(); int result = command.executenonquery();
// **************** exception details *****************************
system.formatexception unhandled message=index (zero based) must greater or equal 0 , less size of argument list. source=mscorlib stacktrace: @ system.text.stringbuilder.appendformat(iformatprovider provider, string format, object[] args)
@ system.string.format(iformatprovider provider, string format, object[] args) @ system.string.format(string format, object arg0) @ dal.dataaccess.updaterec(int32 selid, string projectname, datetime startdate, datetime enddate) in \projects\consulting\dal\dataaccess.cs:line 106 @ consulting.frmproject.btnadd_click(object sender, eventargs e) in \frmproject.cs:line 48
try below code. should work.
object[] args = new object[] { "project", "projectname", "@prname", "projectstartdate", "@startdate", "projectenddate", "@enddate", "projectid", "@id" };
if works please mark answer.
Comments
Post a Comment