Sie können eine Sache tun.
- Erstellen Sie in der AppSettings.config (falls nicht vorhanden, erstellen Sie eine) ein Schlüssel-Wert-Paar.
- Im Code ziehen Sie den Wert, wandeln ihn in Int32 um und weisen ihn command.TimeOut zu.
wie:- In appsettings.config ->
<appSettings>
<add key="SqlCommandTimeOut" value="240"/>
</appSettings>
Im Code ->
command.CommandTimeout = Convert.ToInt32(System.Configuration.ConfigurationManager.AppSettings["SqlCommandTimeOut"]);
Das sollte genügen.
Anmerkung:- Ich konfrontiert die meisten der Timeout-Probleme, wenn ich SqlHelper Klasse von Microsoft Application Blocks verwendet. Wenn Sie es in Ihrem Code haben und mit Timeout-Problemen konfrontiert sind, sollten Sie besser sqlcommand verwenden und dessen Timeout wie oben beschrieben einstellen. Für alle anderen Szenarien sollte sqlhelper ausreichen. Wenn Ihr Kunde damit einverstanden ist, etwas länger zu warten, als es die Klasse sqlhelper bietet, können Sie die oben beschriebene Technik verwenden.
Beispiel:- Verwenden Sie diese -
SqlCommand cmd = new SqlCommand(completequery);
cmd.CommandTimeout = Convert.ToInt32(System.Configuration.ConfigurationManager.AppSettings["SqlCommandTimeOut"]);
SqlConnection con = new SqlConnection(sqlConnectionString);
SqlDataAdapter adapter = new SqlDataAdapter();
con.Open();
adapter.SelectCommand = new SqlCommand(completequery, con);
adapter.Fill(ds);
con.Close();
Anstelle von
DataSet ds = new DataSet();
ds = SqlHelper.ExecuteDataset(sqlConnectionString, CommandType.Text, completequery);
Update: Siehe auch die Antwort von @Triynko weiter unten. Es ist wichtig, auch das zu überprüfen.