使用数据表

时间:2016-12-14 15:29:05

标签: c# sql asp.net datatable

我有一个存储过程,我使用该数据用Datatable填充表格,如下所示:

foreach (DataRow row in dt.Rows)
{
    html.Append("<tr>");
     foreach (DataColumn column in dt.Columns)
     {
        html.Append("<td>");
        html.Append("<a target='_blank' href= " + "'" + row[dt.Columns["subCategoryURL"]] + "'" + " >");
        html.Append(row[column.ColumnName]);
        html.Append("</a>");
        html.Append("</td>")
     }
    html.Append("</tr>");
}

我目前有SP返回2列信息:subCategoryName,subCategoryDe​​scription。我想添加第3列subCategoryURL,它将作为链接的标记,如下所示:

<td>
   <a target="_blank" href="#">Dealer Support</a>
</td>
<td>
   <a target="_blank" href="#">Support information for dealer management</a>
</td>

如何专门针对每个列定位以构建表?我试图使用html.Append(row[dt.Columns["subCategoryURL"]]);  但它没有返回所需的结果。我接下来该怎么办?

2 个答案:

答案 0 :(得分:1)

要从对应于特定列(columnName)的DataRow(datarow)获取特定类型(T)的项目,可以使用以下内容。

dataRow.Field<T>(columnName)

所以,

string url = row.Field<string>(subCategoryURL)

可能会有效。

请记住,T必须与存储在DataRow的指定列中的数据类型相同。如果subCatergoryURL指向一行双精度数,则上面会抛出InvalidCastException。

here

答案 1 :(得分:1)

  

子类别URL最终在表格中......我将如何将其他2定位到循环中

同样的方式,即:

foreach (DataRow row in dt.Rows)
{
 html.Append("<tr>");
 html.Append("<td>");
 html.Append("<a target='_blank' href= " + "'" + row["subCategoryURL"].ToString() + "'" + " >");
 html.Append(row["subCategoryName"].ToString());
 html.Append("</a>");
 html.Append("</td>");

 html.Append("<td>");
 html.Append(row["subCategoryDescription"].ToString());
 html.Append("</td>");

 html.Append("</tr>");
}

row [“ subCategoryName ”]会为您提供当前行“ subCategoryName ”列的值。