CSharp 변환 시스템.Datetime은 MySqlDatetime 유형

1336 단어 MySqlCSharp
MySql 데이터베이스 기반 응용 프로그램을 CSharp로 작성한 경우 DataTable이 필요할 수 있습니다.DataRow 객체에 값을 지정합니다.나는 실제 프로젝트에서 DataTable 대상을 DataGrid의 데이터 원본으로 사용해야 하는 상황을 만났다.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);

프로그램을 다시 실행하여 정상적으로 작동하고 문제가 해결되다.

좋은 웹페이지 즐겨찾기