2011-03-31 88 views
0

所以我有這個舊的應用程序從2005年建立.net 3.5。該應用程序運行在一個W2k3服務器與sql server 2005很好。我把它從服務器移動到本地機器後不能運行asp.net網站 - 無法找到表0

我已經複製應用程序文件和導入數據庫從我的本地主機xp計算機上的備份與SQL Server 2008.我已設置數據庫兼容性90這是100%的SQL Server 2005 compat模式。將文件放入Visual Studio網站項目中,並使用「瀏覽」運行​​它。我收到「無法找到表0」的錯誤。

我已啓用web.config中的調試並獲取問題所在的文件。如果我計算結果,則錯誤將移動到具有類似代碼的另一個文件。我知道我應該計算結果,但應用程序運行得很好,因爲它在Web服務器上。

應用程序正在使用Enterprise Library 1.1,並且db連接信息位於web.config中引用的dataConfiguration.config中。我已編輯dataConfiguration.config以反映本地主機上的連接信息。

代碼觸發錯誤是這樣的:

 
     DataSet dsflash = new DataSet(); 
     dsflash = objFlash.GetLatestBanner(); 
     if (dsflash.Tables[0].Rows.Count > 0) //error here 
     { 
//   lnkLink.HRef = dsflash.Tables[0].Rows[0]["Link"].ToString(); 

此時我正在打,不知道該往哪走......

回答

0

檢查你函數GetLatestBanner()返回一個數據集裏面有一些表格。你也可以有一個條件,以檢查表中的數據集算 -

if(dsflash.Tables.Count > 0) 
{ 
    if (dsflash.Tables[0].Rows.Count > 0) //error here 
    { 
     //your rest of the code. 
    } 
} 

這將確保只有當有數據集中的當前表,它會提前與您的代碼移動。

+0

正如我所說<<如果我計算結果然後錯誤移動到具有類似代碼的另一個文件。我知道我應該計算結果,但應用程序運行得很好,因爲它在Web服務器上。 >> – 2011-03-31 12:35:02

+0

@Andrei - 然後問題出在你的GetLatestBanner()方法中,你需要調試它爲什麼沒有返回你的代碼所期望的正確數據集。 – 2011-03-31 12:42:29

相關問題