System.Data.SqlClient.SqlException: Conversion failed when converting date and/or time from character string.
at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)
at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)
at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe)
at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
at XStationService.TcpProcessor.Run()
ซึ่งที่หาข้อมูลในเน็ต พบว่า อาจจะเป็นที่ region ของเครื่อง แต่ผมยังไม่เข้าใจว่าต้อง ตั้งค่ายังไง หรือว่าผมมาผิดทาง
ส่วนนี้คือcode ส่วนที่มีปัญหาคับ
using (SqlCommand empCommand = new SqlCommand("dbo.Pkinouttran_insert_member", dbConnection))
{
empCommand.CommandType = CommandType.StoredProcedure;
empCommand.Parameters.Add("@inouttran_id", SqlDbType.NVarChar).Value = inouttran_id; this.WriteToFile("1");
empCommand.Parameters.Add("@scr_no", SqlDbType.NVarChar).Value = (long)data[12 + i * 70 + 44] * 256 * 256 * 256 + (long)data[12 + i * 70 + 45] * 256 * 256 + (long)data[12 + i * 70 + 46] * 256 + (long)data[12 + i * 70 + 47]; this.WriteToFile("2");
int srcNo = data[12 + i * 70 + 44] * 256 * 256 * 256 + data[12 + i * 70 + 45] * 256 * 256 + data[12 + i * 70 + 46] * 256 + data[12 + i * 70 + 47];
empCommand.Parameters.Add("@cscmain_id", SqlDbType.NVarChar).Value = getPkcard.Get_CscMain_ID(srcNo); this.WriteToFile("3");
empCommand.Parameters.Add("@rabbit_id", SqlDbType.NVarChar).Value = getPkcard.Get_Rabbit_ID(srcNo); this.WriteToFile("4");
empCommand.Parameters.Add("@loc_id", SqlDbType.Int).Value = "1"; this.WriteToFile("5");
empCommand.Parameters.Add("@equip_id", SqlDbType.Int).Value = data[12 + i * 70 + 48]; this.WriteToFile("6");
dateIN = new DateTime(2000 + data[12 + i * 70 + 9], data[12 + i * 70 + 8], data[12 + i * 70 + 7], data[12 + i * 70 + 6], data[12 + i * 70 + 5], data[12 + i * 70 + 4]);
DateTime nn = DateTime.Now;
this.WriteToFile("NOW :" + nn );
this.WriteToFile("dateIN :" + dateIN);
empCommand.Parameters.Add("@indate", SqlDbType.DateTime).Value = dateIN; this.WriteToFile("7");
try
{
empCommand.ExecuteNonQuery(); this.WriteToFile("18");
}
catch (SqlException ex) // This will catch all SQL exceptions
{
this.WriteToFile(("Execute exception issue: " + ex));
}
Conversion failed when converting date and/or time from character string.
ผมตัดปัญหาโดยเปลี่ยนเป็น text หรือ varchar ไป(ซึ่งไม่ใช่ทางเลือกที่ถูกต้องนัก แต่ก็ใช้ได้ 555)
หลังๆผมมาเชคให้มั่นใจว่า ข้อมูลเรา กับ data type format มันตรงกันไม๊