CSharp 변환 시스템.Datetime은 MySqlDatetime 유형
DataRow _dr = _dtData.NewRow();
_dr["DateTime"] = System.DateTime.Now;
_dtData.Rows.Add(_dr);
현재 시스템 시간을 테이블의 DateTime 열에 기록하는 것이 제 생각입니다.열의 데이터 형식은datetime이고 데이터베이스는MySql입니다.그러나 프로그램이 실행될 때 이상이 생겼다.대개 "System.Datetime을 MySqlDateTime으로 변환할 수 없습니다."
인터넷을 한바탕 뒤져도 쓸만한 해결 방안을 찾지 못했다.그래서 스스로 해결해 보려고 한다.
인터넷 자료를 참고한 결과 MySql의datetime와 CSharp의datetime는 다소 다르다는 것을 알 수 있다. CSharp을 이용하여MySql의datetime 유형 대상의 표에 데이터를 쓰려면 보통Sql문장 파라미터의 형식을 사용하지만 이것은 나의 응용 환경에서 실현할 수 없다. 왜냐하면 나는 데이터를 데이터베이스에 쓰려고 하는 것이 아니기 때문이다.단지 DataGrid에서 데이터를 임시로 표시하기 위해서입니다.그래서 다른 방식으로만 접근할 수 있다.Mysqldatetime 열의 DataType을 가져오면 그의 DataType이 Mysql인 것을 알 수 있습니다.Data.Types.System이 아닌 MysqlDateTimeDateTime.따라서 System을 사용하면 됩니다.DateTime에서 MySql을 생성합니다.Data.Types.MySqlDateTime의 대상은 열의 데이터 형식과 일치할 수 있습니다.
수정된 코드는 다음과 같습니다.
DataRow _dr = _dtData.NewRow();
_dr["DateTime"] = new MySql.Data.Types.MySqlDateTime(System.DateTime.Now);
_dtData.Rows.Add(_dr);
프로그램을 다시 실행하여 정상적으로 작동하고 문제가 해결되다.