这个问题与ASP.Net 3.5和C#
有关我正在从包含大量列的数据库构建RSS Feed。
我需要格式化特定节点中的数据,并且内联它会非常混乱。
我知道我可以将所有参数分别传递给子程序
<%# formatAddress(Container.DataItem["propertyName"],
Container.DataItem["propertyNumber"], ... ) %>
由于这些列中最多有20个,我宁愿通过整行。
<%# formatAddress(Container.DataItem) %>
这是理想的,然后我可以在后面的代码中挑选出我想要的列:
protected string FormattedAddress(object row)
{
DataRowView data = (DataRowView)row;
StringBuilder Address = new StringBuilder();
string Postcode = data["propertyPostcode"];
...
return Address.ToString();
}
我收到错误无法将'System.Data.Common.DataRecordInternal'类型的对象强制转换为'System.Data.DataRowView'。
以前,我使用受保护的字符串FormattedAddress(DataRowView行),但这也不起作用。
任何线索?
答案 0 :(得分:2)
最终找到了几个让我意识到我应该投射到DbDataRecord的例子。
我还在传递&lt;%#formadedAddress(Container.DataItem)%&gt;但我的功能现在如下:
protected string FormattedAddress(object dataItem)
{
DbDataRecord data = (DbDataRecord)dataItem;
string Postcode = data.GetValue(
data.GetOrdinal("propertyPostcode")).ToString();
...
return NicelyFormattedAddress;
}
这是处理数据的最佳方式吗?