我使用的是Npgsql 3.2.2 我连接到Web服务器的数据库:
<add key="CONNECTION_STRING_WEBSERVER" value="Server=abctest.com;Port=5432;UserId=postgres;Password=postgres;Database=testdatabase;CommandTimeout=300;" />
我获取数据的查询:
Dim sql="Select * from table1;"
我的职能:
private DataTable getData(string tableName)
{
DataSet ds = null;
DataTable tbl = null;
try
{
if (m_ConnectionExecute == null)
{
m_ConnectionExecute = new NpgsqlConnection(m_connString_web);
}
if (m_ConnectionExecute.State != ConnectionState.Open)
{
m_ConnectionExecute.Open();
}
NpgsqlDataAdapter adapter = new NpgsqlDataAdapter();
NpgsqlCommand command = null;
try
{
command = CreateCommand(m_Parameters);
command.CommandText = m_commText;
command.Connection = m_ConnectionExecute;
adapter.SelectCommand = command;
ds = new DataSet();
adapter.Fill(ds, "Table1");
tbl = ds.Tables[0];
tbl.TableName = tableName;
ds.Tables.Clear();
}
catch (SqlException ex)
{
ds = null;
}
finally
{
if ( m_ConnectionExecute != null && m_ConnectionExecute.State != ConnectionState.Closed)
{
m_ConnectionExecute.Close();
}
}
}
catch (Exception e)
{
ds = null;
tbl = null;
}
return tbl;
}
我使用Timer:5s会调用函数getData
。
但有时候,函数getData没有响应,我的程序无法继续下一个进程。
问题只发生在Timer运行几天并且数据库放在Web服务器上时。 注意:我有5个Timer运行自动访问数据库。
原因是什么?或限制postgresql? 为什么Npgsql有时候没有响应?