J’ai un petit problème et j’espère que quelqu’un pourra me donner des conseils. Je lance une commande SQL, mais il semble que cette commande nécessite environ 2 minutes pour renvoyer les données car il y a beaucoup de données. Mais le temps de connexion par défaut est de 30 secondes, comment puis-je augmenter cela et l’appliquer à cette commande?
public static DataTable runtotals(ssortingng AssetNumberV, ssortingng 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 Resortingving totals Details: Processed with this error:" + ex.Message); return null; } }
il faut cette commande environ 2 minutes pour retourner les données car il y a beaucoup de données
Mauvais design Pensez à utiliser la pagination ici.
le temps de connexion par défaut est de 30 secondes, comment puis-je augmenter ce temps
Comme vous êtes confronté à un délai d’attente sur votre commande, vous devez donc augmenter le délai d’attente de votre commande sql . Vous pouvez le spécifier dans votre commande comme ceci
// Setting command timeout to 2 minutes scGetruntotals.CommandTimeout = 120;
Ajoutez le délai d’attente de votre SqlCommand
. Veuillez noter que l’heure est en seconde.
// Setting command timeout to 1 second scGetruntotals.CommandTimeout = 1;
Comme il faut 2 minutes pour répondre, vous pouvez augmenter le délai d’attente à 3 minutes en ajoutant le code ci-dessous.
scGetruntotals.CommandTimeout = 180;
Remarque : la valeur du paramètre est en secondes.
Définir CommandTimeout sur 120 n’est pas recommandé. Essayez d’utiliser la pagination comme mentionné ci-dessus. Définir CommandTimeout à 30 est considéré comme normal. Tout ce qui est supérieur à cela est considéré comme une mauvaise approche et cela aboutit généralement à une erreur dans la mise en œuvre. Maintenant, le monde tourne autour de l’approche MiliSeconds.