當我在實時Web服務器上打開我的網站的特定頁面時,出現以下錯誤。在選定的數據源上找不到字段名稱 - 單選按鈕列表imageurl
「在所選數據源上找不到名爲'imgURL'的字段。」
我在VS2010中使用ASP與C#。我在本地開發和查看頁面時沒有收到錯誤消息。
兩個實例都指向相同的遠程數據庫並且正在執行相同的存儲過程。當頁面在Web服務器上運行時,我不明白爲什麼會收到此消息。
我的代碼中的函數調用存儲過程來填充5個單選按鈕列表。 對於一個單選按鈕列表,我想在按鈕上顯示圖像,因此我檢索「imgURl」字段並嘗試將其綁定到控件。在我的本地PC上進行調試時,我可以在var「resultslist」中看到「ID」,「DESC」和「imgURL」,所以存儲過程似乎返回OK!
我很明白爲什麼它在本地工作,但不在主服務器上?
任何幫助,不勝感激
保護無效BindBookDetailsToRBLBox(){
ASPxRadioButtonList[] rblList = new ASPxRadioButtonList[5];
rblList[0] = rblInteriors;
rblList[1] = rblBind;
rblList[2] = rblPaper;
rblList[3] = rblLam;
rblList[4] = rblTrim;
// get the current radio button list box values.
// this is called each time the page loads or the control posts a change to its index
int[] bookDetailIDs = new int[] { 0, 0, 0, 0, 0 };
getSelectedRBLBoxValues(ref bookDetailIDs);
for (int i = 0; i < 5; i++)
{
int? returnCode = 0;
if (bookDetailIDs[i] == 0)
{
try
{
var resultsList = db.getValidCombos(RequiredData[i],
bookDetailIDs[0], bookDetailIDs[1],
bookDetailIDs[2], bookDetailIDs[3],
bookDetailIDs[4], ref returnCode).ToList();
// bind the data to the radio button list control
rblList[i].DataSource = resultsList;
rblList[i].ValueField = "ID";
if (i == 4)
rblList[i].ImageUrlField = "imgURL";
rblList[i].TextField = "DESC";
rblList[i].DataBind();
}
catch (SqlException ex)
{
Log_Error.AddToErrorLog("printingbooks.ascx.cs",
"BindBookDetailsToRBLBox", string.Empty, ex.Message);
}
}
}
}
是什麼'getValidCombos'的返回類型?該返回類型對象是否具有名爲'imgURL'的屬性? – Damith
嗨,當它執行到SPROC(db.getValidCombos(...))時,方法的返回類型是由LINQ自動創建的。它返回一個對象序列,每個對象都有一個字符串,一個int和一個字符串(DESC,ID和imgURL)。它肯定會返回imgURL的值 - 我可以在調試時看到它們。 – Ampersand
我解決了這個問題。我的自動創建的LINQ數據類.cs源文件在活動服務器上已過期。它沒有與我本地機器上的版本相同的返回類型!感謝Damith指引我朝着正確的方向前進。 – Ampersand