Как конвертировать datetime в dataGridView? - PullRequest
0 голосов
/ 21 октября 2019

В моей базе данных есть столбец с датой и временем. Я хочу связать с DataGridView, но у меня проблема с форматом DateTime, когда я связываю данные с таблицей.

Я читал об изменении формата данных и времени, как это

mydatagridView.Columns[0].dataGridViewCellStyle.Format = "dd/MM/yyyy";

, ноэто не работает.

Это код с данными привязки из базы данных.

Connect();

SQLiteCommand cmdDataBase = new SQLiteCommand("select date from database", Connect());
try
{
    SQLiteDataAdapter sda = new SQLiteDataAdapter();
    sda.SelectCommand = cmdDataBase;
    DataTable dbdataset = new DataTable();

    sda.Fill(dbdataset);

    BindingSource bSource = new BindingSource();

    bSource.DataSource = dbdataset;
    dataGridView1.DataSource = bSource;
    sda.Update(dbdataset);


}
catch (Exception ex)
{
    MessageBox.Show(ex.Message);
}

1 Ответ

1 голос
/ 21 октября 2019

Я считаю, что проблема заключается в том факте, что column type первого столбца в DataTable, вероятно, не определен как DateTime, поэтому он не распознает шаблон форматирования.

Чтобы обновить тип столбца, необходимо отредактировать DataTable, однако после заполнения DataTable данными вам не разрешено редактировать столбец, и вы не будете, поскольку выделают это динамически с помощью метода .Fill().

Однако вы можете создать клон структуры DataTable и применить требуемые модификации столбцов, а затем скопировать данные из одного в другое.

SQLiteDataAdapter sda = new SQLiteDataAdapter();
sda.SelectCommand = cmdDataBase;
DataTable dbdataset = new DataTable();
sda.Fill(dbdataset);

DataTable dbdatasetclone = dbdataset.Clone();
dbdatasetclone.Columns[0].DataType = typeof(DateTime);           
foreach (DataRow row in dbdataset.Rows)
{
    dbdatasetclone.ImportRow(row);
}

BindingSource bSource = new BindingSource();
bSource.DataSource = dbdatasetclone;
dataGridView1.DataSource = bSource;
dataGridView1.Columns[0].DefaultCellStyle.Format = "dd/MM/yyyy";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...