2013-07-09 78 views
0

我建立ASP.NET Web應用程序,存儲在SQL Server 2008數據。ASP.NET網站顯示錯誤的數據

該應用程序運行正常,,但一旦兩天的應用程序顯示錯誤的數據,當我進入一些頁面時出現錯誤。系統在5分鐘後自動恢復正常工作。

有人可以給出一個線索是什麼問題?

我收到提示上嘗試採取從數據表中檢索數據線: 像:

txtbx_contact_fullname.Text = dt_contact.Rows[0]["Contact_Fullname"].ToString(); 

lbl_Creation_datetime.Text = dt_YC_Last_Transaction.Rows[0]["Creation_datetime"].ToString(); 

通常這些線可以完美運行,而且沒有理由數據表將返回空。 我得到的錯誤是: 列「XXXXX」不屬於表。

的是檢索數據的查詢是:

SELECT [Request ID],[Creation Date],[Request Status],[Contact Fullname],[Start Date],[Start Time],[End Date],[End Time],[Work Mode],[Comments],[HPM Points],[FA Points] 
FROM dbo.vw_All_Requests 
WHERE [Request Status] = @YellowCard_Status 
ORDER BY [Creation Date] DESC 

從一些原因,一些列不回來..

+2

難道你寫的錯誤,因爲你的代碼可以用一些錯誤 –

+1

它很難知道跑。我們需要更多信息。否則,它將全部是「在黑暗中猜測」。猜測:也許數據是以次優方式緩存的? – mortb

+0

也許你可以把你的SQL也放到你的文章中。 – Paul

回答

0

txtbx_contact_fullname.Text = dt_contact.Rows[0]["Contact Fullname"].ToString(); 
lbl_Creation_datetime.Text = dt_YC_Last_Transaction.Rows[0]["Creation datetime"].ToString();

0

你在asp.net代碼列名_爲例如FULL_NAME但在SQL查詢它不具有_,我不知道你的名字分配給您的數據表或沒有,但給關注這個問題......

+0

我的所有專欄都有用「_」分隔的單詞,它的效果很好,我有幾個數據庫。 只有在那個特定的應用程序中,我遇到了一些問題,一兩天就會持續5分鐘。 – Aviadjo

0

,如果你代碼是正確的。你正在從.NET代碼調用Creation_datetime,但是在SQL中你有沒有這樣的列,你確實有一個Creation date只有(從你的SELECT查詢)。

所以,要解決你的問題,所有你需要做的是改變

dt_YC_Last_Transaction.Rows[0]["Creation_datetime"] 

dt_YC_Last_Transaction.Rows[0]["Creation_date"] 

問題是固定的後,你應該學會更好的方式來查詢數據庫使用明確的名稱,例如,使用對象,而不是調用字符串值...你應該學習一些實體框架和Linq,它會改善你的代碼。

+0

感謝您的諮詢, 但我的應用程序再次正常工作99%的時間。 所以列的名稱不是問題.. – Aviadjo

+0

那麼你的代碼不是你發佈的代碼,就好像它,它將永遠不會工作100%的時間!你的**選擇查詢**沒有選擇任何'Creation_datetime'列,並且你正在請求,最糟糕的是,你正在使用'ToString()',所以你甚至不檢查null值。 – balexandre