c# - Unable to update current time in a excel using oledb -
i trying insert current time time column in excel using below code through oledb connection when check excel value inserted in date format.
value updated in excel - 1/0/1900 3:54:11 pm
expected value - 3:54:11 pm
string currenttime = datetime.now.tostring("hh:mm:ss.fff tt"); string cmnd1 = "create table [" + currentdate + "] (testcase char(100), executiontime time, result char(20))"; string cmnd2 = "insert [" + currentdate + "] (testcase, executiontime, result) values ("+ "'" + tname + "',@dd,'" + result +"')" ; using (oledbconnection conn = new oledbconnection(connectionstringtd)) { oledbcommand createsheet = new oledbcommand(cmnd1, conn); oledbcommand insertresult = new oledbcommand(cmnd2, conn); insertresult.parameters.addwithvalue("@dd", datetime.now.timeofday); conn.open(); try { createsheet.executenonquery(); } catch(oledbexception) {} insertresult.executenonquery(); } }
afaik, when enter pure time value stored datetime entered time portion, , date part january 0, 1900 automatically since the days before 1900 incorrect in excel.
instead of that, pass datetime.now directly parameter , change column format type time h:mm:ss tt format in format cells part. way, paramterized @dd part. use parameters other values try insert. don't concatenate them.
insertresult.parameters.addwithvalue("@dd", datetime.now); 
and don't use addwithvalue anymore. it may generate unexpected , suprising results sometimes. use add method overload specify parameter type , it's size.
also use using statement dispose commands did connection.
Comments
Post a Comment