我有一个带有[WelcomeSent]列的sql表,类型为:Datetime ,此列中存在空值
我有这段代码从我的数据库中获取值并将它们存储在网格中:
var result = (from i in dc.vw_Users where i.id == id select i).ToList(); //error line
storeUsers.DataSource = result;
storeUsers.DataBind();
在我的网格中有一栏:
<ext:DateColumn runat="server" ID="ColUsersWelcomeSent" DataIndex="WelcomeSent" Text="WelcomeSent" Width="80" Format="dd/MM/yyyy" Hidden="true"></ext:DateColumn>
但是当我运行它时,我收到了这个错误:
无法投射类型&System;日期时间&#39;输入 &#39; System.String&#39;
任何人都知道如何解决这个问题?
答案 0 :(得分:0)
在storeUsers.DataSource = result中分配之前,你需要在linq结果对象中转换toString()你的日期值;
答案 1 :(得分:0)
通过分别获取每个列并解析Date Column来解决它:
var result = from i in dc.vw_Users
where i.id == id
select new
{
i.UserId,
i.id,
i.SiId,
i.FullName,
i.UserName,
i.RoId,
i.Ro,
i.Email,
WelcomeSent =
i.WelcomeSent != null && i.WelcomeSent.ToString().Length > 0
? DateTime.Parse(i.WelcomeSent.ToString())
: new DateTime(),
i.Signed,
i.IsPri,
i.IsApproved,
IsLocked = i.IsLockedOut,
i.LoginStatus,
i.LastLoginDate,
i.SignRights,
i.LastPasswordChangedDate,
i.FailedPasswordAttemptCount,
i.CompleteDate,
i.AccessDate,
i.CertificationDate,
i.CertificateId,
i.progress
};