string connectionstring = ConfigurationManager.ConnectionStrings["nbmisConnectionString"].ConnectionString;
        SqlConnection con = new SqlConnection(connectionstring);
        SqlCommand cmd = new SqlCommand();
        cmd.Connection = con;
        cmd.CommandType = CommandType.Text;        sql = "exec CP_Manage '20061101','20061231','1','',''";        cmd.CommandText = sql;
        con.Open();
        this.GridView1.DataSource = cmd.ExecuteReader();
        GridView1.DataBind();
        con.Close();
        con.Dispose();问题出现:
超时时间已到。在操作完成之前超时时间已过或服务器未响应。 
this.GridView1.DataSource = cmd.ExecuteReader();
总是这一行不对,
如果我把sql改为常用的select 语句就没有问题,
我这个存储过程是一个很复杂的查询语句,直接在查询分析里执行没有任何问题,只有5秒左右就会出现结果
create           PROCEDURE CP_Manage
@stdt char(8),
@eddt char(8),  
@flag char(1),
@dept_id varchar(10),
@empl_id varchar(10)
 AS
SET NOCOUNT ON
select * from c_manage多谢!

解决方案 »

  1.   

    SqlConnection Conn=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"]);
    Conn.Open();
    SqlDataAdapter Da=new SqlDataAdapter("exec CP_Manage '20061101','20061231','1','',''",Conn);
    DataSet t_ds=new DataSet();
    Da.Fill(t_ds,tablename);
    Da.Dispose();
    Conn.Close();
    Conn.Dispose();
      

  2.   

    我主要是想用GridView1显示出来,新手上路!请多多指教!谢谢!
      

  3.   

    tablename 填充DataSet里DataTable 的名字
      

  4.   

    如果这个查询真的需要那么长时间,那么你可以单独创建一个数据库连接字符串,不要用nbmisConnectionString。专用这个申明数据库超时时间为较长时间,这样不影响其它查询的可靠性。
      

  5.   

    不是的,我在查询分析里查询速度很快的,一般都只有2-3秒时间,最多只有5秒时间
    不知为什么
    执行
    sql = "exec CP_Manage '20061101','20061231','1','',''";        cmd.CommandText = sql;
            con.Open();
            this.GridView1.DataSource = cmd.ExecuteReader();
            GridView1.DataBind();就出问题谢谢!
      

  6.   

    public DataSet Ds(string s_tmp,string tablename)
    {
    SqlConnection Conn=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"]);
    Conn.Open();
    SqlDataAdapter Da=new SqlDataAdapter(s_tmp,Conn);
    DataSet t_ds=new DataSet();
    Da.Fill(t_ds,tablename);
    Da.Dispose();
    Conn.Close();
    Conn.Dispose();
    return t_ds;
    }调用
    DataSet ds=new DataSet();ds=Ds("exec CP_Manage '20061101','20061231','1','',''","table1");
    this.GridView1.DataSource = cmd.ExecuteReader();
    GridView1.DataBind();
      

  7.   

    string connectionstring = ConfigurationManager.ConnectionStrings["nbmisConnectionString"].ConnectionString;
            SqlConnection con = new SqlConnection(connectionstring);
            SqlCommand cmd = new SqlCommand();
            cmd.Connection = con;
            cmd.CommandType = CommandType.Text;///        sql = "exec CP_Manage '20061101','20061231','1','',''";///        我晕,调用存储过程能这样调吗????
            应该改成:
            cmd.CommandText = "CP_Manager";
            cmd.CommandType = CommandType.storedProcedure;
            cmd.Parameters.AddWithValue("参数名称",参数值);
            cmd.Parameters.AddWithValue("参数名称",参数值);
            cmd.Parameters.AddWithValue("参数名称",参数值);
            .
            .
            .
            con.Open();
            this.GridView1.DataSource = cmd.ExecuteReader();
            GridView1.DataBind();
            con.Close();
            con.Dispose();
      

  8.   

    Click the link to solve your problem.Good luck!