SqlDataAdapter.fill超时,查询不到5秒

时间:2016-11-16 10:15:13

标签: c# sqldataadapter timeoutexception

我有一个SqlDataAdapter,其中填充了33k行数据(大约15列)。 在MS SSMS中运行查询时,我在大约5秒钟内获得行。 使用我的代码时,即使将timeout参数设置为120秒,我也会收到超时:

    private static DataTable getResult(string query, int someId, SqlConnection myConn)
    {
        SqlCommand myCmd = new SqlCommand(query, myConn);
        SqlDataAdapter da = new SqlDataAdapter();
        DataTable dt = new DataTable();

        myCmd.Parameters.Add("@someId", SqlDbType.Int);
        myCmd.Parameters["@someId"].Value = someId;
        da.SelectCommand = myCmd;
        da.SelectCommand.CommandTimeout = 120;
        da.Fill(dt);

        return dt;
    }

我已经尝试过来自网站的建议,例如获取更高的连接数和超时值,直到今天都没有结果......

有关如何避免超时错误的任何想法?

感谢您的见解。

1 个答案:

答案 0 :(得分:0)

好的,所以我终于能够通过在我的表上添加索引来消除超时错误,如this page [MSDN]中所述。

似乎时间圈不同于MS SSMS到.net代码...