在C#中使用if else和dataTable

时间:2013-08-17 03:27:38

标签: c# dynamic if-statement datatable

首先让我说我对C#很新。我使用DataTable来显示SQL数据库中的数据。我试图使用if else动态显示表中的行,如果数据库单元格中的数据有数据,但如果它为null,则表格的该部分不显示。

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

以下是我的代码的一部分:

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;

1 个答案:

答案 0 :(得分:2)

假设GetValue(3)通常是string,您可以尝试这样做:

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

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