命令超时,获得响应的时间更长

时间:2015-11-09 04:19:39

标签: c#-4.0

我正在执行大型查询,因此我的应用程序会浪费时间错误。一些线程建议添加命令超时,但在添加这些行之后需要更长时间才能获得响应,任何想法为什么或我在代码中缺少什么?

 public int CreateRecord(string theCommand, DataSet theInputData)
    {

        int functionReturnValue = 0;
        int retVal = 0;

        SqlParameter objSqlParameter = default(SqlParameter);
        DataSet dsParameter = new DataSet();

        int i = 0;

        try
        {
            //Set the command text (stored procedure name or SQL statement). 

            mobj_SqlCommand.CommandTimeout = 120;
            mobj_SqlCommand.CommandText = theCommand;
            mobj_SqlCommand.CommandType = CommandType.StoredProcedure;



            for (i = 0; i <= (theInputData.Tables.Count - 1); i++)
            {
                if (theInputData.Tables[i].Rows.Count > 0)
                {
                    dsParameter.Tables.Add(theInputData.Tables[i].Copy());
                }
            }
            objSqlParameter = new SqlParameter("@theXmlData", SqlDbType.Text);
            objSqlParameter.Direction = ParameterDirection.Input;
            objSqlParameter.Value = "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>" + dsParameter.GetXml();
            //Attach to the parameter to mobj_SqlCommand. 
            mobj_SqlCommand.Parameters.Add(objSqlParameter);
            //Finally, execute the command. 
            retVal = (int)mobj_SqlCommand.ExecuteScalar();
            //Detach the parameters from mobj_SqlCommand, so it can be used again. 
            mobj_SqlCommand.Parameters.Clear();


            functionReturnValue = retVal;
        }
        catch (Exception ex)
        {

            throw new System.Exception(ex.Message);
        }
        finally
        {
            //Clean up the objects created in this object. 
            if (mobj_SqlConnection.State == ConnectionState.Open)
            {
                mobj_SqlConnection.Close();
                mobj_SqlConnection.Dispose();
                mobj_SqlConnection = null;
            }
            if ((mobj_SqlCommand != null))
            {
                mobj_SqlCommand.Dispose();
                mobj_SqlCommand = null;
            }
            if ((mobj_SqlDataAdapter != null))
            {
                mobj_SqlDataAdapter.Dispose();
                mobj_SqlDataAdapter = null;
            }
            if ((dsParameter != null))
            {
                dsParameter.Dispose();
                dsParameter = null;
            }
            objSqlParameter = null;
        }
        return functionReturnValue;
    }

0 个答案:

没有答案