从DataAdapter中的DateTime字段获取日期的最佳/最快方法

时间:2017-01-10 00:35:15

标签: c# asp.net datetime

我正在使用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值,因为日期并不总是填入。

1 个答案:

答案 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") ?? "";