我有一点问题,希望有人可以给我一些建议。我正在运行一个SQL命令,但它似乎需要这个命令大约2分钟才能返回数据,因为有很多数据。但是默认连接时间是30秒,如何增加它,并将其应用于此命令?
public static DataTable runtotals(string AssetNumberV, string AssetNumber1V)
{
DataTable dtGetruntotals;
try
{
dtGetruntotals = new DataTable("Getruntotals");
//SqlParameter AssetNumber = new SqlParameter("@AssetNumber", SqlDbType.VarChar, 6);
//AssetNumber.Value = AssetNumberV;
SqlParameter AssetNumber = new SqlParameter("@AssetNumber", SqlDbType.VarChar, 10);
AssetNumber.Value = AssetNumberV;
SqlParameter AssetNumber1 = new SqlParameter("@AssetNumber1", SqlDbType.VarChar, 10);
AssetNumber1.Value = AssetNumber1V;
SqlCommand scGetruntotals = new SqlCommand("EXEC spRunTotals @AssetNumber,@AssetNumber1 ", DataAccess.AssetConnection);
// scGetruntotals.Parameters.Add(AssetNumber);
scGetruntotals.Parameters.Add(AssetNumber);
scGetruntotals.Parameters.Add(AssetNumber1);
SqlDataAdapter sdaGetruntotals = new SqlDataAdapter();
sdaGetruntotals.SelectCommand = scGetruntotals;
sdaGetruntotals.Fill(dtGetruntotals);
return dtGetruntotals;
}
catch (Exception ex)
{
MessageBox.Show("Error Retriving totals Details: Processed with this error:" + ex.Message);
return null;
}
}
答案 0 :(得分:104)
由于存在大量数据,它需要此命令大约2分钟才能返回数据
糟糕的设计。考虑在这里使用分页。
默认连接时间为30秒,如何增加此
当你面临命令时,你需要增加sql command的时间。您可以在命令中指定它,如
// Setting command timeout to 2 minutes
scGetruntotals.CommandTimeout = 120;
答案 1 :(得分:20)
添加SqlCommand
的超时时间。请注意时间是秒。
// Setting command timeout to 1 second
scGetruntotals.CommandTimeout = 1;
答案 2 :(得分:2)
由于需要2分钟才能响应,您可以通过添加以下代码将超时时间增加到3分钟
scGetruntotals.CommandTimeout = 180;
注意:参数值以秒为单位。
答案 3 :(得分:0)
不建议将CommandTimeout设置为120。尝试使用如上所述的分页。将CommandTimeout设置为30被视为正常。除此之外的任何事情都是考虑糟糕的方法,通常会导致实施方面出现问题。现在世界正在使用MiliSeconds方法。
答案 4 :(得分:0)
将命令超时设置为2分钟
scGetruntotals.CommandTimeout = 120;
但是您可以优化存储过程以减少时间! 像