1

我的 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"); . 不行。然后我在 LINQ 中尝试dateRegister = row["customerDateRegister"].ToString("dd/MM/yyyy")。同样的问题。

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

4

4 回答 4

3

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

dateRegister = ((DateTime)row["customerDateRegister"]).ToString("dd/MM/yyyy")
于 2012-11-16T16:12:02.530 回答
2

如果customerDateRegister是类型DateTime,则应DateTime首先将其设为 a。因此使用DataRow扩展方法Field<T>

dateRegister = row.Field<DateTime>("customerDateRegister")
于 2012-11-16T16:13:56.837 回答
1

你可以试试这个,用这个替换你的 dateRegister 行。

dateRegister = ((DateTime)row["customerDateRegister"]).ToString("dd/MM/yyyy"),
于 2012-11-16T16:14:36.037 回答
0

或者,您可以将 MaskedEditBox 与所需的日期时间掩码一起使用

于 2012-11-19T11:50:22.587 回答