Nie można sformatować daty w kolumnie zestawu danych, GridView

Czytam dane z arkusza Excela i wyświetlając go w danych gridview.There są niektóre kolumny daty w excel.So, gdy czytam dane z Excela i wiążę go z dataGridView.Data jest wyświetlana w formacie „02 / 02/2009 12:00:00 AM ”, ale rzeczywiste dane w kolumnie excel mają format„ 2/2/2009 ”. Jak zmienić format daty w datagridview.

Ponieważ wiążę dane z zestawu danych, nie mam żadnych kolumn szablonów ani zestawu kolumn związanych, więc nie wiem, gdzie ustawić HtmlEncode = "False" DataFormatString = "{0: T}"

Czy jest jakiś sposób, aby to zrobić. Proszę mi pomóc.

Poniżej znajduje się przykładowy kod.

string OleDbConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= "+ FileUpload1.PostedFile.FileName + ";Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=1\"";

string strSheetName = "Sheet1";
OleDbConnection oledbConnection;
OleDbCommand oledbCommand;
OleDbDataAdapter oledbAdapter;

oledbCommand = new OleDbCommand();
oledbAdapter = new OleDbDataAdapter();
DataSet dsExcellData = new DataSet();

oledbConnection = new OleDbConnection(OleDbConnection);
oledbConnection.Open();
oledbCommand.Connection = oledbConnection;


oledbCommand.CommandText = "Select * from [" + strSheetName + "$]"; // i want to find this sheet name
oledbAdapter.SelectCommand = oledbCommand;
oledbAdapter.Fill(dsExcellData);

oledbConnection.Close();

GridView1.DataSource = dsExcellData.Tables[0];

GridView1.DataBind();

================================================== ======== Próbowałem

dsExcellData.Tables [0] .Rows [rowcount] ["date_column"]. ToString ()] = dsExcellData.Tables [0] .Rows [rowcount] ["date_column"]. ToString ()]. ​​ToString ("d") ;

ale wartość nie jest przypisywana jako „mm / dd / rrrr” Ponownie przyjmuje czas domyślny czasu (mm / dd / rrrr gg: mm: ss AM).

================================================== ===========

Po prostu przypisuję zestaw danych do gridview. Problem polega na tym, że zestaw danych odczytuje kolumnę daty w formacie mm / dd / rrrr hh: mm: ss AM. Nie mogę również zmienić danych w zbiorze danych.

================================================== ===========

Ostatecznie dostałem odpowiedź od ScottE:

musimy dodać poniższy kod w itemdatabound w datagridview:

protected void dgValidatedData_ItemDataBound1(object sender, DataGridItemEventArgs e)
{

        for (int i = 0; i <= e.Item.Cells.Count - 1; i++)
        {
            System.DateTime cellDate = default(System.DateTime);
            if (System.DateTime.TryParse(e.Item.Cells[i].Text, out cellDate))
            {
                e.Item.Cells[i].Text = string.Format("{0:d}", cellDate);
            }
        }

} 

questionAnswers(5)

yourAnswerToTheQuestion