시간 초과가 만료되었습니다. 작업이 완료되기 전에 시간 초과 기간이 경과했거나 서버가 응답하지 않습니다. "

세밀 세바스찬

저장 프로 시저를 실행 중이지만 실행하는 동안 다음과 같은 오류가 표시됩니다.

시간 초과가 만료되었습니다. 작업이 완료되기 전에 시간 초과 기간이 경과했거나 서버가 응답하지 않습니다.

내 웹 구성을 다음과 같이 설정했습니다.

   <add name="SAMPLECONNECTION" connectionString="Data Source=ADMIN\SQLEXPRESS;Initial Catalog=PFGRT;Persist Security Info=True;MultipleActiveResultSets=true;User ID=sa;connect Timeout =1000000;Password=PASSWORD"
  providerName="System.Data.SqlClient" />

나는 connect Timeout = 0;또한 세트처럼 시도했지만 동일한 오류가 발생합니다.

어떻게 해결할 수 있습니까?

내 저장 프로 시저 호출 클래스

public DataSet adFeedBackReportFacultyWise(string SetID, string FacultyID, string SubjectID,string groupid)
{
    DbUtil du = new DbUtil();
    Dictionary<string, SqlParameter> cmdParameters = new Dictionary<string, SqlParameter>();
    cmdParameters["SetID"] = new SqlParameter("SetID", SetID);
    cmdParameters["FacultyID"] = new SqlParameter("FacultyID", FacultyID);
    cmdParameters["SubjectID"] = new SqlParameter("SubjectID", SubjectID);
    cmdParameters["groupid"] = new SqlParameter("groupid", groupid);

    return du.ExecuteQuery("adFeedBackReportFacultyWise", cmdParameters);
}

내 DButil 클래스는

public class DbUtil
{
    string connection = ConfigurationManager.ConnectionStrings["gatikkcmsConnectionString"].ConnectionString;

    public SqlDataAdapter ad;
    public DataTable dt = new DataTable();
    SqlConnection conn;
    SqlCommand cmd = new SqlCommand();
    public DbUtil()
    {
        conn = new SqlConnection(ConfigurationManager.ConnectionStrings["gatikkcmsConnectionString"].ConnectionString);
        cmd = null;
    }

    public SqlConnection getConnection()
    {
        return new SqlConnection(connection);
    }
   public int ExecuteCommand(string storedProcName, Dictionary<string, SqlParameter> procParameter)
    {
        int rc;
        using (SqlConnection cn = getConnection())
        {
            cn.Open();
            // create a SQL command to execute the stored procedure
            using (SqlCommand cmd = cn.CreateCommand())
            {
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.CommandText = storedProcName;
                // assign parameters passed in to the command
                foreach (var procParameters in procParameter)
                {
                    cmd.Parameters.Add(procParameters.Value);
                }
                rc = cmd.ExecuteNonQuery();
            }
            cn.Close();
        }
        return rc;
    }
}
브렌든 그린

문제는 연결 시간 초과 (데이터베이스 서버에 연결하는 데 걸린 시간)가 아니라 명령 시간 초과 ( 명령 을 실행하는 데 걸린 시간)입니다.

당신의에 DbUtil클래스의에 대해 명령 제한 시간 설정 SqlCommand과 같이를 :

using (SqlCommand cmd = cn.CreateCommand())
{
    cmd.CommandTimeout = 120; //set timeout - use appropriate value
    cmd.CommandType = CommandType.StoredProcedure;
    cmd.CommandText = storedProcName;
    // assign parameters passed in to the command
    foreach (var procParameters in procParameter)
    {
        cmd.Parameters.Add(procParameters.Value);
    }
    rc = cmd.ExecuteNonQuery();
}

저장 프로 시저의 성능도 확인하는 것이 좋습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관