Проверка, имеет ли столбец с датой значения или нет в C # - PullRequest
0 голосов
/ 28 июня 2018

Это мои данные

DataTable get_order_info = objDUT.GetDataTable("select * from investment_orders where order_id =" + dr["order_id"]); 

В этой таблице данных есть столбец added_date.

Я хочу применить свой метод, если столбец added_date != null

Я написал этот код:

if (get_order_info.Columns.Contains("added_time") != null)
{
    var secondsSince1970 = DateTime.Now - DateTime.Parse("01.01.1970 00:00:00");
    difference = Convert.ToInt64(secondsSince1970.TotalSeconds) - Convert.ToInt64(get_order_info.Rows[0]["added_time"]);
}
else
{
    Label1.Text = "fail";
}

но отображается ошибка

Входная строка была в неправильном формате

Пожалуйста, помогите мне.

Ответы [ 2 ]

0 голосов
/ 28 июня 2018

Предполагая, что вы действительно хотите определить, имеет ли поле значение, вам нужно будет сделать следующее:

foreach(DataRow row in myTable.Rows)
{
    if (row.Table.Columns.Contains("added_time") && !DBNull.Value.Equals(row["added_time"])) 
    { 
         DateTime theValue = (DateTime)row["added_time"];

    }
}
0 голосов
/ 28 июня 2018

Ответ только для исправления сообщения об ошибке, о котором вы упомянули, похоже, вы использовали неправильный формат DateTime. Попробуйте изменить:

DateTime.Parse("01.01.1970 00:00:00");

в:

DateTime.Parse("1970-01-01 00:00:00", System.CultureInfo.Globalization.InvariantCulture);

В качестве альтернативы Вы можете явно указать формат, который хотите использовать:

DateTime.ParseExact("01.01.1970 00:00:00", "dd-MM-yyyy HH:mm:ss", System.CultureInfo.Globalization.InvariantCulture);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...