2012-01-14 190 views
0

我使用下面的代碼來備份我的數據庫......登錄失敗數據庫

Dim con As SqlConnection 
Dim cmd As SqlCommand 
con = New SqlConnection("Data Source=.\SQLEXPRESS;Initial Catalog=LIC;Trusted_Connection = yes") 
cmd = New SqlCommand("BACKUP DATABASE LIC to disk='C:\Backup\ICLS.bak'", con) 
con.Open() 
cmd.ExecuteNonQuery() 
con.Close() 

但我得到這個錯誤

Cannot open database "LIC" requested by the login. The login failed. Login failed for user 'mono-PC\mono'.

任何幫助表示讚賞。

回答

1

試試這個。它仍然會失敗,但它會打印一個數字(例外狀態)。下面的表格列出了可能的狀態以及它們可能發生的原因(從http://blogs.msdn.com/b/sql_protocols/archive/2006/02/21/536201.aspxhttp://msdn.microsoft.com/en-us/library/ms366351.aspx)。查看這些鏈接以解決問題。

try 
    Dim con As SqlConnection 
    Dim cmd As SqlCommand 
    con = New SqlConnection("Data Source=.\SQLEXPRESS;Initial Catalog=LIC;Trusted_Connection = yes") 
    cmd = New SqlCommand("BACKUP DATABASE LIC to disk='C:\Backup\ICLS.bak'", con) 
    con.Open() 
    cmd.ExecuteNonQuery() 
    con.Close() 
catch e as SqlException 
    Console.WriteLine("State: " & e.State) 
end try 

可能的狀態:

ERROR STATE ERROR DESCRIPTION 
2 and 5  Invalid userid 
6   Attempt to use a Windows login name with SQL Authentication 
7   Login is disabled, and the password is incorrect 
8   Password mismatch 
9   Invalid password 
11 and 12 Valid login but server access failure 
13   SQL Server service paused 
18   Change password required 
+0

我得到1 ......是什麼?1 – 2012-01-14 05:16:16

+0

來自鏈接:狀態1是在客戶端顯示的一條通用消息 - SQL Server中可能存在更多描述性錯誤(也可能是Windows應用程序日誌)。這個博客應該幫助你確定認證失敗的確切性質。因此請檢查您的Windows事件日誌。 – 2012-01-14 05:17:29

+0

請注意,該消息保持相當不倫不類,以防止向未經身份驗證的客戶端泄露信息。特別是,無論問題的性質如何,「國家」總是顯示爲「1」。從您提供的鏈接複製。 – 2012-01-14 05:18:40

相關問題