SELECT
CAST ([content_html] AS XML).query('/root/Physicians/specialty/a') AS [Specialty1]
, CAST ([content_html] AS XML).query('/root/Physicians/specialty2/a') AS [Specialty2]
, CAST ([content_html] AS XML).query('/root/Physicians/specialty3/a') AS [Specialty3]
, CAST ([content_html] AS XML).query('/root/Physicians/specialty4/a') AS [Specialty4]
, CAST ([content_html] AS XML).query('/root/Physicians/specialty5/a') AS [Specialty5]
, CAST ([content_html] AS XML).query('/root/Physicians/specialty6/a') AS [Specialty6]
FROM
[db].[dbo].[content]
WHERE
[folder_id] = '188'
AND
(content_status = 'A')
ORDER BY
[content_title]ASP.net中继器(部分):
<asp:Label ID="lblSpec1" runat="server"><%# Eval("Specialty1").ToString() + DisplayMultipleValues(Eval("Specialty2").ToString()) + DisplayMultipleValues(Eval("Specialty3").ToString()) + DisplayMultipleValues(Eval("Specialty4").ToString()) + DisplayMultipleValues(Eval("Specialty5").ToString()) + DisplayMultipleValues(Eval("Specialty6").ToString()) %></asp:Label>C# (处理多个条目并添加,的代码):
public string DisplayMultipleValues(string strValue)
{
return (NonBlankValueOf(strValue));
}
public string NonBlankValueOf(string source)
{
return (string.IsNullOrEmpty(source)) ? "" : ", " + source;
}当我在SQL中运行查询时,它工作正常(如果列没有值,那么它是一个空单元格),但是通过后面的代码运行它,会给出以下错误:
Server Error in '/' Application.
DataBinding: 'System.Data.DataRowView' does not contain a property with the name 'Specialty3'.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Web.HttpException: DataBinding: 'System.Data.DataRowView' does not contain a property with the name 'Specialty3'.
Source Error:
Line 96: </div>
Line 97: <div class="optionRight">
Line 98: <asp:Label ID="lblSpec1" runat="server"><%# Eval("Specialty1").ToString() + DisplayMultipleValues(Eval("Specialty2").ToString()) + DisplayMultipleValues(Eval("Specialty3").ToString()) + DisplayMultipleValues(Eval("Specialty4").ToString()) + DisplayMultipleValues(Eval("Specialty5").ToString()) + DisplayMultipleValues(Eval("Specialty6").ToString()) %></asp:Label>
Line 99: </div>
Line 100: </div>
Source File: c:\er.aspx Line: 98
Stack Trace:
[HttpException (0x80004005): DataBinding: 'System.Data.DataRowView' does not contain a property with the name 'Specialty3'.]
System.Web.UI.DataBinder.GetPropertyValue(Object container, String propName) +12523742
System.Web.UI.DataBinder.Eval(Object container, String[] expressionParts) +142
ASP.find_provider_aspx.__DataBind__control22(Object sender, EventArgs e) in c:\er.aspx:98
System.Web.UI.Control.DataBind(Boolean raiseOnDataBinding) +304
System.Web.UI.Control.DataBindChildren() +12746711
System.Web.UI.Control.DataBind(Boolean raiseOnDataBinding) +321
System.Web.UI.Control.DataBindChildren() +12746711
System.Web.UI.Control.DataBind(Boolean raiseOnDataBinding) +321
System.Web.UI.WebControls.Repeater.CreateItem(Int32 itemIndex, ListItemType itemType, Boolean dataBind, Object dataItem) +183
System.Web.UI.WebControls.Repeater.CreateControlHierarchy(Boolean useDataSource) +659
System.Web.UI.WebControls.Repeater.OnDataBinding(EventArgs e) +164
find_provider.Search() in c:\er.aspx.cs:294
find_provider.Page_Load(Object sender, EventArgs e) in c:\er.aspx.cs:37
System.Web.UI.Control.LoadRecursive() +71
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3178解决这个问题的最好办法是什么?
我尝试了以下几点:
<asp:Label ID="lblspec1" runat="server"><%# If(Eval("Specialty1").ToString() Is DBNull.Value, "", Eval("Specialty1").ToString()) + If(Eval("Specialty2").ToString() Is DBNull.Value, "", DisplayOffices(Eval("Specialty2").ToString())) + If(Eval("Specialty3").ToString() Is DBNull.Value, "", DisplayOffices(Eval("Specialty3").ToString())) + If(Eval("Specialty4").ToString() Is DBNull.Value, "", DisplayOffices(Eval("Specialty4").ToString())) + If(Eval("Specialty5").ToString() Is DBNull.Value, "", DisplayOffices(Eval("Specialty5").ToString())) + If(Eval("Specialty6").ToString() Is DBNull.Value, "", DisplayOffices(Eval("Specialty6").ToString())) %></asp:Label>发布于 2014-12-02 05:49:50
您可以将类似的内容添加到页面后面的代码中:
protected object MyEval(string expression)
{
object o = null;
try
{
o = DataBinder.Eval(this.GetDataItem(), expression);
}
catch
{
o = System.String.Empty;
}
return o;
}然后用“MyEval”替换所有的渐变:
<asp:Label ID="lblSpec1" runat="server"><%# MyEval("Specialty1").ToString() + DisplayMultiplMyEvalues(MyEval("Specialty2").ToString()) + DisplayMultiplMyEvalues(MyEval("Specialty3").ToString()) + DisplayMultiplMyEvalues(MyEval("Specialty4").ToString()) + DisplayMultiplMyEvalues(MyEval("Specialty5").ToString()) + DisplayMultiplMyEvalues(MyEval("Specialty6").ToString()) %></asp:Label>https://stackoverflow.com/questions/27237555
复制相似问题