我正在使用DataAdapter(它的Oracle,但这不重要),而且我试图吸引一个特定的领域。
我的代码如下所示:
OracleDataAdapter da = new OracleDataAdapter(cmd);
da.Fill(dtHeaders1);
txtAuditID_h.Text = dtHeaders1.Rows[0]["AUDIT_ID"].ToString();
//txtPlanID_h.Text = dtHeaders1.Rows[0]["PLAN_ID"].ToString();
txtPlanDesc_h.Text = dtHeaders1.Rows[0]["PLAN_DESC"].ToString();
txtPlanType_h.Text = dtHeaders1.Rows[0]["PLAN_TYPE"].ToString();
txtProduct_h.Text = dtHeaders1.Rows[0]["PRODUCT"].ToString();
txtCustNum_h.Text = dtHeaders1.Rows[0]["CUST_NUM"].ToString();
txtCustName_h.Text = dtHeaders1.Rows[0]["CUST_NM"].ToString();
txteProTransID_h.Text = dtHeaders1.Rows[0]["WORK_ORDER_NUM"].ToString();
string ADate = (dtHeaders1.Rows[0]["AUDIT_COMPLETE_DT"].ToString());
DateTime? dt = string.IsNullOrEmpty(ADate) ? (DateTime?)null : DateTime.Parse(ADate);
if (dt == null)
{
txtAuditCompDt_h.Text = "";
}
else
{
txtAuditCompDt_h.Text = dt.Value.ToShortDateString();
}
AUDIT_COMPLETE_DT是一个DateTime字段。我需要把它放到" mm / dd / yyyy"中的文本框中。格式。这个有效,但我必须相信它有更好/更高效和更少笨重的方式。
任何人都可以帮我解决这个问题吗?如果我知道自己在做什么,我只觉得最后10行代码可以用一行完成?它必须能够处理NULL值,因为日期并不总是填入。
答案 0 :(得分:0)
这是我通常做的事情:
if (dtHeaders1.Rows[0].IsNull("AUDIT_COMPLETE_DT"))
{
txtAuditCompDt_h.Text = "";
}
else
{
txtAuditCompDt_h.Text = ((DateTime)dtHeaders1.Rows[0]["AUDIT_COMPLETE_DT"]).ToString("d");
}
它更好,因为它会跳过一些字符串转换。我最近的工作一直在考虑以下问题,但我还没有进行转换,因为我不确定它是否能达到相同的性能,因为它至少需要C#6。但是确实让你失去了一条线:
txtAuditCompDt_h.Text = dtHeaders1.Rows[0].Field<DateTime>("AUDIT_COMPLETE_DT")?.ToString("d") ?? "";