2015-06-22 11 views
0

Я успешно импортировал данные из xls в dataGridView. В столбце даты в dataGridView отображается формат DateTime. Я хочу, чтобы этот столбец даты отображался в формате «dd MMM yyyy». Я попытался, как показано ниже:Преобразование даты в строковый формат

connExcel.Open() 
    Dim dtExcelSchema As DataTable 
    dtExcelSchema = connExcel.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, Nothing) 
    Dim SheetName As String = dtExcelSchema.Rows(0)("TABLE_NAME").ToString() 
    connExcel.Close() 

    'Read Data from First Sheet 
    connExcel.Open() 
    cmdExcel.CommandText = "SELECT * From [" & SheetName & "]" 
    oda.SelectCommand = cmdExcel 
    oda.Fill(dt) 
    connExcel.Close() 

    dt.Columns(1).ToString("dd MMM yyyy") 

    'Bind Data to GridView 
    InvestorGridView.Caption = Path.GetFileName(FilePath) 
    InvestorGridView.DataSource = dt 
    InvestorGridView.DataBind() 

, но он дает мне ошибку:

Ошибка 1 разрешение перегрузки не удалась, поскольку не доступны «ToString» не принимает это число аргументов. D: \ ВТМ \ ВТМ \ Project \ Инвестор \ Инвестор \ Investor.aspx.vb 68 9 Инвестор

Благодаря

+1

Вы получаете ошибку, потому что вы не вызывая ToString в дате, а в объекте DataColumn, который не использует перегрузку. – sblandin

ответ

0

Ваш подход не работает, потому что вы используете ToString на DataColumn, который не имеет никакой такой перегрузка как DateTime. Это не работает. Единственный способ с DataTable состоял в том, если бы вы добавили еще один строковый столбец с соответствующим форматом в каждой строке.

Вы должны вместо этого использовать DataGridViewColumn «s DefaultCellStyle:

InvestorGridView.Columns(1).DefaultCellStyle.Format = "dd MMM yyyy" 

Update если это WebForms и это BoundField вы можете использовать DataFormatString-property:

<asp:BoundField DataField="DateColumn" 
       HeaderText="DateColumn-Name" 
       SortExpression="DateColumn" 
       DataFormatString="{0:dd MMM yyyy}" /> 
+0

Привет, Тим, спасибо тебе за помощь. Но он сказал, что «DefaultCellStyle» не является членом «System.Web.UI.WebControls.DataControlField». У меня AutoGeneratedColumns = true здесь. влияет ли это? – Margaretha

+0

@Margaretha: Вы должны были упомянуть, что это веб-формы, а не winforms;) –

+0

@Margaretha: я отредактировал свой ответ. –

Смежные вопросы