【发布时间】:2013-12-27 19:51:30
【问题描述】:
我正在制作一个连接到本地 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 是打开的无意义的连接字符串。
我对异常捕获应该如何工作的理解有问题吗?由于凭据错误而无法连接到数据库时,我认为不应打开 SqlConnection 状态是否正确?
【问题讨论】:
-
你知道有一个
SqlConnectionStringBuilder类 - 对吧?这将使创建连接字符串变得更加容易(而不是仅仅将它串在一起......) -
我不知道。谢谢指点!我正在尝试稳健地构建它,但我对使用 C# 中的数据库不熟悉,所以我可能正在重新发明轮子。
标签: c# sql-server