2012-11-16 50 views
1

我的LINQ格式化日期时出现问题。这里是代码LINQ中的日期格式

var resultCustomer = from row in formDg.dtCustomer.AsEnumerable() 
          where row.Field<int>("customerID") == customerID2 
          select new 
          { 
           name = row["customerName"].ToString(), 
           ic = row["customerIC"].ToString(), 
           add1 = row["customerAdd1"].ToString(), 
           add2 = row["customerAdd2"].ToString(), 
           tel = row["customerTel"].ToString(), 
           tel2 = row["customerTel2"].ToString(), 
           tel3 = row["customerTel3"].ToString(), 
           email = row["customerEmail"].ToString(), 
           dateRegister = row["customerDateRegister"].ToString(), 
           customerRef = row["customerRef"].ToString(), 
           customerGroup = row["groupCustName"].ToString(), 
           panelName = row["panelName"].ToString(), 
           }; 

var firstRecord = resultCustomer.First();// My record return single row only 

我的问题是如何能在customerDateRegister格式的自订日期,如 “DD/MM/YYYY”?,因为我的文本框显示时出现问题16-Nov-12 12:00:00 AM。我不想显示时间,但只是约会。

我有这样的尝试tbDateRegOv.Text = firstRecord.dateRegister.ToString(“dd/MM/yyyy”);。不行。然后我尝试dateRegister = row [“customerDateRegister”]。ToString(“dd/MM/yyyy”), in LINQ。同样的问题。

那么我该如何解决这个问题呢?感谢帮助。 :)

回答

3

您需要首先将您的行作为DateTime。这将允许您为日期使用自定义格式字符串。

dateRegister = ((DateTime)row["customerDateRegister"]).ToString("dd/MM/yyyy") 
+0

您好,感谢您的答复。如果你不介意可以展示示例代码? – Chuki2

+0

感谢朋友,像冠军一样工作! – Chuki2

+0

抱歉,编辑此答案而不是我的。那只是一场意外。 –

2

如果customerDateRegister类型为DateTime你应该让一个DateTime摆在首位的。为此使用DataRow扩展方法Field<T>

dateRegister = row.Field<DateTime>("customerDateRegister") 
+0

非常感谢朋友,我已经得到解决方案..再次感谢 – Chuki2

1

你可以试试这个,替换这是你dateRegister线。

dateRegister = ((DateTime)row["customerDateRegister"]).ToString("dd/MM/yyyy"), 
+0

感谢朋友,像冠军一样工作! – Chuki2

0

或者,你可以使用MaskedEditBox与所需日期时间掩盖