我正在开发一个连接本地SQL Server数据库的应用程序,我使用以下方法创建连接字符串并测试异常。
public void connect(string user, string password, string server, string database)
{
connectString = "user id=" + user + ";" +
"password=" + password + ";" +
"server=" + server + ";" +
"Trusted_Connection=yes;" +
"database=" + database + ";" +
"connection timeout=5";
myConnection = new SqlConnection(connectString);
try
{
myConnection.Open();
isConnected = true;
}
catch (SqlException)
{
isConnected = false;
}
catch (InvalidOperationException)
{
isConnected = false;
}
}
根据我的研究,如果连接无法打开,则应抛出异常,但是如果我传递无意义的凭据或空字符串,则不会抛出异常。如果我传递正确的信息,则可以连接并使用连接字符串来获取数据。当我尝试使用错误的连接字符串填充SqlDataAdapter时,会在稍后抛出异常。
此外,在调试和检查myConnection.State时,即使使用无意义的连接字符串,也会显示为open状态。
我是否对异常捕获的工作原理存在问题?如果由于凭证错误而无法连接到数据库,我是否正确地认为SqlConnection状态不应处于打开状态?
SqlConnectionStringBuilder
зұ»еҗ—пјҹдҪҝз”Ёе®ғеҸҜд»ҘжӣҙиҪ»жқҫең°еҲӣе»әиҝһжҺҘеӯ—з¬ҰдёІпјҲиҖҢдёҚд»…д»…жҳҜе°Ҷе…¶дёІеңЁдёҖиө·...пјүгҖӮ - marc_s