質問のタイトルは明確ではありませんが、この問題は次の説明で非常に明確です。
BirthDay
CREATE TABLE クエリで datetime として宣言されたフィールドがあります。次のクエリがあり、次のように DataTable に入力する場合、このフィールドを呼び出します。
SQLiteDataAdapter da = new SQLiteDataAdapter("SELECT BirthDay FROM myTable", myConnection);
DataTable dt = new DataTable();
da.Fill(dt);
myDataGridView.DataSource = dt;
の列BirthDay
にmyDataGridView
は のタイプがDateTime
あり、 で確認でき myDataGridView.Columns["BirthDay"].ValueType
ます。
ただし、次のように SELECT クエリを少し変更すると:
SQLiteDataAdapter da = new SQLiteDataAdapter("SELECT CASE WHEN 1 THEN BirthDay END AS BirthDay2 FROM myTable", myConnection);
DataTable に入力し、myDataGridView にバインドした後、BirthDay2
列も のタイプであると予想しました。DateTime
ただし、タイプはSystem.Object
?
試してみましCAST(... as DATETIME)
たが、返される型はSystem.Int64
(SQLite の DATETIME が実際にInt64
は .NET に対応することを理解しています)、どうすればSystem.DateTime
元の column として返すことができるのでしょうかBirthDay
。
最終的な型 ( で確認できますDataGridViewColumn.ValueType
) が必要なので、日時文字列を希望どおりにフォーマットDateTime
するために使用できます。DataGridViewColumn.Format
あなたの助けは非常に高く評価されます!