2015-02-10 144 views
0

我有相關的數據庫和網頁上傳到服務器上,但無法從服務器訪問數據庫,但通過VS2010在本地計算機上運行時,我能夠訪問它。 問服務器管理員也關於這個問題,但他們說服務器端一切正常,他們說的代碼有問題。無法訪問數據庫

以下錯誤我越來越:

Server Error in '/' Application. 
Invalid object name 'Login'. 
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.Data.SqlClient.SqlException: Invalid object name 'Login'. 

源錯誤:

Line 20: SqlCommand com = new SqlCommand("select Password from Login where Username='" + Uname_txt.Text.Trim() + "'", con); 
Line 21: con.Open(); 
Line 22: SqlDataReader dr = com.ExecuteReader(); 
Line 23: try 
Line 24: { 
+0

您要連接的數據庫在哪裏?在你的筆記本上?在運行Web代碼的同一個Web服務器上,或在不同的服務器上?你的連接字符串是什麼樣的? – 2015-02-10 12:52:08

回答

1

如果一切本地工作,那麼問題肯定是在怎麼樣了設置連接到數據庫服務器。

因此,請查看web.config中的連接字符串,並確保它已正確設置(如果使用集成安全性,請確保允許適當的APP POOL訪問數據庫)。

此外,請確保登錄表確實是在數據庫中創建的。

一旦你做的一切,你有很多事情要跟進:使用

  1. 停止保留關鍵字在SQL表達式(密碼,登錄等),或者至少他們包裹在方括號,例如[密碼] 。
  2. 嘗試在參考架構的習慣來獲得在存儲過程中使用表時(dbo.Login而不僅僅是登錄)
  3. 提取查詢一樣,當讓你not vulnerable to SQL Injection
0

您還沒有貼連接字符串,我懷疑,你沒有提供連接字符串中的INITIAL CATALOG,因爲它直接連接到主數據庫,當然你的表不存在Master。

INITIAL CATALOG =應該添加到連接字符串中。我希望這能幫到您。

注意:您也可以在連接字符串中使用DATABASE =。