2014-05-20 20 views
0

當我在實時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); 
      } 
     } 
    } 
} 
+0

是什麼'getValidCombos'的返回類型?該返回類型對象是否具有名爲'imgURL'的屬性? – Damith

+0

嗨,當它執行到SPROC(db.getValidCombos(...))時,方法的返回類型是由LINQ自動創建的。它返回一個對象序列,每個對象都有一個字符串,一個int和一個字符串(DESC,ID和imgURL)。它肯定會返回imgURL的值 - 我可以在調試時看到它們。 – Ampersand

+0

我解決了這個問題。我的自動創建的LINQ數據類.cs源文件在活動服務器上已過期。它沒有與我本地機器上的版本相同的返回類型!感謝Damith指引我朝着正確的方向前進。 – Ampersand

回答

0

嘗試下面

rblList[i].DataSource = resultsList.Select(x=> new{imgURL =x.imgURL, ID =x.ID}) ; 
+0

這個運行在本地也沒關係,但是當我在現場服務器上加載和打開網頁,我得到以下 「編譯器錯誤信息:CS1061:‘getValidCombosResult’不包含‘imgUrl的’,沒有擴展方法「的定義。 imgURL'接受類型'getValidCombosResult'的第一個參數可以找到(你是否缺少using指令或程序集引用?)「 – Ampersand

相關問題