У меня проблемы с переводом этого кода на C # из VB.NET. Этот код должен принимать значение из каждой ячейки столбца в базе данных (назовем его column1, его тип данных - datetime, поэтому формат выглядит следующим образом: 19.12.2011 19:42:30), и найдите промежуток времени между Datetime.Now и этим значением column1 для каждой строки в элементе управления gridview. Какой-то парень дал мне этот код, который отлично работает в VB.NET:
<asp:TemplateField HeaderText="TimeSpan">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# TimeSpan(IIf(IsDBNull(Eval("column1")), DateTime.Now,Eval("column1"))) %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
А для кода:
Protected Function TimeSpan(ByVal Duration As DateTime) As TimeSpan
Dim date1 As DateTime = Duration
Dim date2 As DateTime = DateTime.Now
Dim ts As TimeSpan = (date2 - date1)
Return ts
End Function
И в VB.NET это работает, но когда я пытаюсь перевести его на C # и запустить свое приложение, я получаю эти две ошибки:
- У лучшего совпадения перегруженного метода для _Default.TimeSpan (System.DateTime) есть недопустимый аргумент
Аргумент 1: невозможно преобразовать объект в System.DateTime
Может кто-нибудь помочь мне с этим? Перевод, который работает для кода? Или даже другой способ сделать то, что я хочу сделать?
Спасибо
Отредактировано: это код (в C #, который я получаю с помощью переводчиков), который на самом деле представляет собой код, который дает мне исключения, которые я упоминал ранее:
<asp:TemplateField HeaderText="TimeSpan">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# TimeSpan((Information.IsDBNull(Eval("column1")) ? DateTime.Now : Eval("column1")))
%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
А для кода:
protected TimeSpan TimeSpan(DateTime Duration)
{
DateTime date1 = Duration;
DateTime date2 = DateTime.Now;
TimeSpan ts = (date2 - date1);
return ts;
}