各位大侠,我写了个存储过程,在查询分析器中执行只需1秒钟,但用C#调用的时候居然要1分多钟还会出结果,不知什么原因。有人说是用了这个 SqlParameter 的原因。在线等解决方案, 谢谢

解决方案 »

  1.   

    Response.Write("begin:" + DateTime.Now.ToString() +"<Br>");
    DataSet ds=new DataSet();
    SqlConnection conn=new SqlConnection(Post183Configuration.ConnectionString);
    SqlCommand cmd=new SqlCommand();
    cmd.CommandTimeout = 1200;
    cmd.Connection=conn;
    cmd.CommandText="getOrganOrderReport"; SqlParameter busiIdparam=new SqlParameter("@strBisID",System.Data.SqlDbType.VarChar,2000);
    busiIdparam.Value=GetSelectBusiness();
    cmd.Parameters.Add(busiIdparam); SqlParameter lvlparam=new SqlParameter("@strLvl",System.Data.SqlDbType.VarChar,10);
    lvlparam.Value="3";
    cmd.Parameters.Add(lvlparam); SqlParameter sdateparam=new SqlParameter("@Bdate",System.Data.SqlDbType.VarChar,20);
    sdateparam.Value=this.txtBgnTime.Text.Trim();
    cmd.Parameters.Add(sdateparam); SqlParameter edateparam=new SqlParameter("@Edate",System.Data.SqlDbType.VarChar,20);
    edateparam.Value=this.txtEndTime.Text.Trim();
    cmd.Parameters.Add(edateparam); SqlParameter stdparam=new SqlParameter("@strStatus",System.Data.SqlDbType.VarChar,1000);
    stdparam.Value=this.GetStatus();
    cmd.Parameters.Add(stdparam); cmd.CommandType=CommandType.StoredProcedure; Response.Write("begin1:" + DateTime.Now.ToString() +"<Br>");
    SqlDataAdapter da=new SqlDataAdapter();
    da.SelectCommand=cmd; ds.Tables.Add("CityOrderTotal");
    da.Fill(ds.Tables["CityOrderTotal"]);
    Response.Write("begin2:" + DateTime.Now.ToString() +"<Br>");
    conn.Dispose();
    cmd.Dispose();
    Response.Write("end:" + DateTime.Now.ToString() +"<Br>");
    return ds;
      

  2.   

    da.Fill(ds.Tables["CityOrderTotal"]); 网页里返回大数据集会死人的
      

  3.   

    to abaochan呵呵,我确实是新手,请问做一个统计报表,40来条数据,还得分页取?
    to wartim
    时间大部分花在了
    Response.Write("begin1:" + DateTime.Now.ToString() +" <Br>"); 
    SqlDataAdapter da=new SqlDataAdapter(); 
    da.SelectCommand=cmd; ds.Tables.Add("CityOrderTotal"); 
    da.Fill(ds.Tables["CityOrderTotal"]); 
    Response.Write("begin2:" + DateTime.Now.ToString() +" <Br>"); 这段代码之间,但总数也就40来条.
      

  4.   

    楼主用是的SQL Server 2005吧?
      

  5.   

    to zxkid
    用的是sqlserver 2000,C# 1.0
    to jaylongli
    SqlDataAdapter da=new SqlDataAdapter();
    da.SelectCommand=cmd;ds.Tables.Add("CityOrderTotal");
    da.Fill(ds.Tables["CityOrderTotal"]);大部分时间花在了上面四个语句上。
      

  6.   

    啊?看来你在线啊!对不起了哈。我乱说的。呵呵这个肯定不是C#执行存储过程慢。你在查询分析器里查询对于longText 这类字段字数太多就会显示<Long Text>,而不会显示完整内容。如果在程序里你的40条记录都含有这样的大数据的字段的话,可能查询很快,但发送数据结果集要很长时间。