c# - UPDATE query DateTime overflow -
i use sql server 2012 , vs 2012. have table following data:
tagid sessionid scanningtime int nvarchar datetime --------------------------------------- 4820427 test1 2013-08-16 14:20:17.447 i have created update query save changes been made (any records added or existing records edited) in dgv sql db.
so example add new record , edit existing 1 this:
tagid sessionid scanningtime int nvarchar datetime --------------------------------------- 4820000 test1 2013-08-16 14:20:17.447 3242341 test1 2013-08-16 14:20:17.447 and click button update database:
private void updatebtn_click(object sender, eventargs e) { datatable queryresult = new datatable(); foreach (datagridviewrow row in datagridview1.rows) { int tagid = convert.toint32(row.cells["tagid"].value); string sessionid = convert.tostring(row.cells["sessionid"].value); datetime scanningtime = convert.todatetime(row.cells["scanningtime"].value); string connstr = "data source=duzy;initial catalog=autoregsql;integrated security=true"; sqlconnection myconn = new sqlconnection(connstr); myconn.open(); //sql query returns todays sessions given roomid string query = @"update attendance" + " set tagid= @tagno, sessionid= @sessionno, scanningtime= @scantime "; sqlcommand command = new sqlcommand(query, myconn); command.parameters.add("tagno", sqldbtype.int).value = tagid; command.parameters.add("sessionno", sqldbtype.varchar).value = sessionid; command.parameters.add("scantime", sqldbtype.datetime).value = scanningtime; sqldataadapter adapter = new sqldataadapter(command); adapter.fill(queryresult); myconn.close(); } } when click button save changes receive error:
an unhandled exception of type 'system.data.sqltypes.sqltypeexception' occurred in system.data.dll additional information: sqldatetime overflow. must between 1/1/1753 12:00:00 , 12/31/9999 11:59:59 pm. edit:
looking ssms, content of attendance table has changed after trying update table. original record replaced record added manualy (despite error).
attendance table after update query execution:
tagid sessionid scanningtime int nvarchar datetime --------------------------------------- 5453453 test1 2013-08-16 14:20:00.000
the issue sql server making assumption format of date incorrect in case.
try converting datetime when add parameters:
scanningtime.tostring("yyyy-mm-dd hh:mm:ss"); let me know if helps.
Comments
Post a Comment