Обновление dataow в datatable в коде - PullRequest
1 голос
/ 13 марта 2012

Я пытаюсь сделать что-то, что вы считаете довольно простым. Я извлекаю запись из базы данных для отображения в подробном представлении. Однако прежде чем отобразить запись для пользователя, я хочу удалить метку времени значения dateTime. Поэтому я попытался сделать следующее, создав функцию, которая принимает имя столбца и экземпляр строки данных.

protected void FormatDateFromRow(string columnName, DataRow row)
        {
        if (row[columnName] != DBNull.Value)
        {
            DateTime dateTime;
            bool result = DateTime.TryParse(row[columnName].ToString(), out dateTime);

            if (result)
            {
                row.BeginEdit();
                row[columnName] =  dateTime.ToShortDateString();
                row.EndEdit();
                row.AcceptChanges();
            }
        }

    }

Я использую этот метод в фрагменте логики, который выглядит следующим образом.

            if (dt != null)
            {
                if (dt.Rows.Count > 0 && dt.Columns.Contains("SystemName"))
                {
                    DataRow row = dt.Rows[0];

                    lblHeader.Text = row["SystemName"].ToString();

                     FormatDateFromRow("GrantedDate", row);
                     FormatDateFromRow("ExpireDate", row);
                     dt.AcceptChanges();

                    dvPackage.DataSource = dt;
                    dvPackage.DataBind();
                }

Но когда отображается подробный вид, отметка времени все еще присутствует. Может кто-нибудь, пожалуйста, помогите?

Спасибо, GS

1 Ответ

2 голосов
/ 13 марта 2012

I предположим, , что ваше преобразование в DateTime как-то не получается в этой строке:

bool result = DateTime.TryParse(row[columnName].ToString(), out dateTime);

Проверьте, возвращает ли эта строка true. Если нет, рассмотрите возможность использования правильного Culture, чтобы иметь возможность конвертировать.

Метод DateTime.TryParse (String, IFormatProvider, DateTimeStyles, DateTime)

Надеюсь, это поможет.

...