我正在开发我的小项目,并尝试将我的 Windows 窗体应用程序连接到 SQL Server。 这是我的连接类的代码:
public class DatabaseConnection
{
private string connectionString;
private SqlConnection connection;
public DatabaseConnection()
{
connectionString = "Data Source=192.168.2.1;Initial Catalog=Hotsiy_NP;User ID=Hotsiy;Password=Yevheniy209;Connect Timeout=5";
connection = new SqlConnection(connectionString);
}
public bool OpenConnection()
{
try
{
connection.Open();
return true;
}
catch (Exception)
{
connectionString = "Data Source=91.225.200.84,1433;Initial Catalog=Hotsiy_NP;User ID=Hotsiy;Password=Yevheniy209;Connect Timeout=5";
connection = new SqlConnection(connectionString);
try
{
connection.Open();
return true;
}
catch (Exception)
{
return false;
}
}
}
public void CloseConnection()
{
connection.Close();
}
public SqlConnection GetConnection()
{
return connection;
}
}
我试图将连接超时设置为 5 秒而不是 30 秒,因为当我加载应用程序时,它尝试通过第一个 IP 连接但失败,它等待 30 秒让服务器发送错误,然后尝试通过第二个 IP 连接。 我的问题是如何让延迟时间达到5秒
我尝试了不同的方法,首先是向连接字符串添加连接超时属性:
connectionString = "Data Source=192.168.2.1;Initial Catalog=Hotsiy_NP;User ID=Hotsiy;Password=Yevheniy209;Connect Timeout=5";
第二种方法是在
connection.open()
之前将锁定超时设置为5000毫秒
try
{
using (SqlCommand command = new SqlCommand("SET LOCK_TIMEOUT 5000", connection))
{
connection.Open();
}
return true;
}
首先,如果您将密码、IP、用户名等发布到公共论坛,您应该隐藏它们。
但是回到你的问题:你的连接字符串中的属性错误
connectionString = "Data Source=XX.XXX.XXX:XXX;Initial Catalog=Hotsiy_NP;User ID=XXXX;Password=XXXXXXX;Connection Timeout=5";
其连接超时不是连接超时: 请参阅https://learn.microsoft.com/en-us/dotnet/api/system.data.sqlclient.sqlconnection.connectiontimeout?view=dotnet-plat-ext-7.0以供参考