私はforループを使ってプロシージャを実行しています。ループの限界は、1000倍以上です。コードとプロシージャは正常に動作しますが、何度かエラーが発生しましたSQLからのタイムアウトエラー
サーバーから結果を受け取ったときにトランスポートレベルのエラーが発生しました(プロバイダ:TCPプロバイダ、エラー:0 - セマフォのタイムアウト期間が切れました)。
このは、マイデータ
public string updateselstatus(int sid, string[] trnasId, string[] resparr)
{
string ret = "";
try
{
//con.Open();
for (int j = 0; j < trnasId.Length; j++)
{
con.Open();
string a = trnasId[j].Trim().ToString();
string b = resparr[j].Trim().ToString();
SqlCommand cmd = new SqlCommand("OIB_updateselstatus", con);
cmd.Parameters.Clear();
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@sid", sid);
cmd.Parameters.AddWithValue("@smsid", trnasId[j].Trim().ToString());
cmd.Parameters.AddWithValue("@status", resparr[j].Trim().ToString());
cmd.ExecuteNonQuery();
con.Close();
}
return ret;
}
catch (Exception ex)
{
con.Close();
ret = ex.Message.ToString();
return ret;
}
//finally { con.Close(); }
}
で、私の手順が
ALTER proc [dbo].[OIB_updateselstatus]
@status varchar(50),@smsid varchar(100),@sid int
as
begin
update OIB_SmsHistory set [email protected] where [email protected] and [email protected]
end
が彼らのaがあります私のコードやクエリのnyの障害。どうすればこの時間外に来ることができますか?それは私のインターネット速度に依存しますか
なぜdbを開くと、各ループを閉じますか? – BugFinder
@ BugFinderループは5〜10分まで動く。だから私はそれのために接続の損失を考える。悪い決断かもしれません.. – Jks
接続は人生の欠如のためにのみ終了するでしょう、これはあなたに質問が長すぎると伝えています – BugFinder