偶尔SqlDataReader不会填充DataTable

时间:2017-03-27 09:50:46

标签: c# sql sql-server-2014-express

我们有一些代码来管理SQL - Connections。该类保持连接打开,以便更快地访问数据库。上周我意识到,偶尔会创建一个DataTable,但不会填充任何数据。当软件在一段时间内未使用时会发生这种情况。我可以在Debug-Session中捕获它,但是在我第二次运行部分代码之后,它返回了一个填充表,就像预期的一样。

我们的客户在几个月后在其他机器上使用相同的软件,但还没有遇到这个问题。只有在新的selled系统上才会发生这种情况。但它的SQL-Server和数据库相同。有谁有想法为什么?有没有超时或类似的东西?

提前谢谢

public class DBEncaps
{
    public SqlConnection oSqlDbConnection = null;

    public void OpenDb (string _sOpenString )
    {
        this.oSqlDbConnection = new SqlConnection(this.sConnectionString);
        this.oSqlDbConnection.Open();
    }

    public DataTable GetTable (string _sSql, string _sTableName)
    {
        DataTable oTable = null;
        SqlCommand oSqlDbCmd = new SqlCommand(_sSql, this.oSqlDbConnection);
        SqlDataAdapter oSqlAdapter = new SqlDataAdapter(oSqlDbCmd);
        oSqlAdapter.Fill(oTable);
    }
}

void CallingFunction()
{
    DBEncaps encap = new DBEncaps();
    encap.OpenDb ("Server=127.0.0.1; Database=foo; Trusted_Connection=yes");
    Datatable someTable = encap.GetTable("SELECT * FROM dbo.bar");
}

0 个答案:

没有答案