【发布时间】:2011-03-29 06:10:39
【问题描述】:
在尝试针对 SQL Server 2008 Express 实例测试无效连接字符串时,我发现了这种奇怪的行为:指定无效的 Initial Catalog 会引发 SQLException,其编号有时为 233,有时为 18456。
代码可以更好地说明它。
// The following connection string has a purposely incorrect initial catalog:
string invalidConnString = @"Data Source=.\SQLEXPRESS;Initial Catalog=INVALID_DATABASE_NAME;User Id=dummyUser;Password=dummyPassw;";
SqlConnection connection = new SqlConnection(invalidConnString);
try
{
connection.Open();
}
catch (SqlException sex)
{
Console.WriteLine(sex.Number); // I "randomly" get either 233 or 18456
throw;
}
finally
{
connection.Close();
}
联机丛书中的system error codes 指定
- 233 - 与服务器建立连接成功,但在登录过程中出现错误。 (提供者:共享内存提供者,错误:0 - 管道的另一端没有进程。)
- 18456 - 用户 '%.*ls'.%.*ls 登录失败
我认为两者都是不同的说法:登录失败。但是,为什么失败不一致呢?
【问题讨论】:
标签: sql-server ado.net