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

Popular posts from this blog

assembly - 8086 TASM: Illegal Indexing Mode -

Java, LWJGL, OpenGL 1.1, decoding BufferedImage to Bytebuffer and binding to OpenGL across classes -

javascript - addthis share facebook and google+ url -