2012-01-14 158 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

相关问题