将if-else与C#中的dataTable一起使用

本文关键字:一起 dataTable 中的 if-else | 更新日期: 2023-09-27 18:28:03

让我首先声明我对C#非常陌生。我正在使用DataTable来显示SQL数据库中的数据。如果数据库单元格中的数据有数据,我尝试使用if-else来动态显示表中的一行,但如果它为null,则不显示表的该部分。

为什么它总是打印代码的其他部分,而即使单元格为空也不打印?

这是我代码的一部分:

C#

DataTable dt = new DataTable();
    PullDataConn.Open();
    dt.Load(cmd.ExecuteReader());
    PullDataConn.Close();
    int rowCount = dt.Rows.Count;
    string html = "";
    for (int i = 0; i < rowCount; i++)
    {
        html += "<div class='divContainer'>" + 
                    "<table class='resultsTable1'>" + 
                    "<tr><td colspan='2' class='tdCoName'>";
        html += dt.Rows[i].ItemArray.GetValue(0);
        html += "</td></tr>" + 
                    "<tr><td class='contactCat'>HotLine</td>" +
                    "<td class='tdHeadingPadding'>";
        html += dt.Rows[i].ItemArray.GetValue(1);
        html += "</td></tr>" +
                    "<tr><td class='contactCat'>e-Mail</td>" +
                    "<td class='tdHeadingPadding'>";
        html += dt.Rows[i].ItemArray.GetValue(2);
        html += "</td></tr>";
        if (dt.Rows[i].ItemArray.GetValue(3) == null)
        {
            html += "<tr><td colspan='2' style='height:10px;'></td></tr></table></div>";
        }
        else
        {
            html += "<tr><td class='contactCat'>Other</td><td class='tdHeadingPadding'>";
            html += dt.Rows[i].ItemArray.GetValue(3);
            html += "</td></tr><tr><td colspan='2' style='height:10px;'></td></tr></table></div>";
        }
    }
    ResultsDiv.InnerHtml += html;

将if-else与C#中的dataTable一起使用

假设GetValue(3)通常是string,您可以尝试以下操作:

if (string.IsNullOrEmpty(dt.Rows[i].ItemArray.GetValue(3).ToString())) {
   // hide it
} else {
   // show it
}

正如您所提到的,您是C#的新手,但可以考虑发布另一个关于构建html的更好方法的问题。我不是在攻击你或你选择的早期尝试,但StackOverflow的好人绝对可以帮助你改善这一部分(性能、可读性等)。