저장 프로 시저를 실행 중이지만 실행하는 동안 다음과 같은 오류가 표시됩니다.
시간 초과가 만료되었습니다. 작업이 완료되기 전에 시간 초과 기간이 경과했거나 서버가 응답하지 않습니다.
내 웹 구성을 다음과 같이 설정했습니다.
<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] 삭제
몇 마디 만하겠습니다