首先让我说我对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;
答案 0 :(得分:2)
假设GetValue(3)
通常是string
,您可以尝试这样做:
if (string.IsNullOrEmpty(dt.Rows[i].ItemArray.GetValue(3).ToString())) {
// hide it
} else {
// show it
}
正如您所提到的,您是C#的新手,但考虑发布另一个关于更好地构建HTML的方法的问题。我不会攻击你或你选择的早期尝试,但StackOverflow的优秀人员绝对可以帮助你提高这一部分(性能,可读性等)。