请教关于调用存款过程的问题,我是直接是用SQL语句写的,总是出现问题,只有10分了!万分感谢!
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
多谢!
------解决方案-------------------- 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();
------解决方案--------------------tablename 填充DataSet里DataTable 的名字
------解决方案--------------------将你那个过程东西简化,变成多个简单的过程。
------解决方案--------------------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();
------解决方案--------------------string connectionstring = ConfigurationManager.ConnectionStrings[ "nbmisConnectionString "].ConnectionString;