当前位置:编程学习 > C#/ASP.NET >>

能在同一个页面内同时写两个GridView控件吗?

大家好,能在同一个页面内同时写两个GridView控件吗?
为什么我在同一个页面绑定了两个空间,两个GridView或者一个GridView+DataList就报错了.
只能一次绑定一个控件,郁闷.麻烦大家帮我看看.谢谢!
错误:ExecuteReader requires an open and available Connection. The connection's current state is closed.

这是Page_load代码:


 public partial class Default1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                RepNavi.DataSource = new CategoryManager().selectALL();//最新分类列表
                RepNavi.DataBind();
                ProgramManager progmgr = new ProgramManager();
                //首页右侧最新列表|GridView控件
                gvNewList.DataSource = progmgr.SelectLatestPrograms();//最新节目列表
                gvNewList.DataBind();
               //根据类别显示节目|DataList控件
                //dl_Program.DataSource = progmgr.SelectLatestProgByCategoryId("50");
                //dl_Program.DataBind();
                //
                //RepBlock.DataSource=progmgr.SelectLatestPrograms();
                //RepBlock.DataBind();
                //首页右侧最新更新
                gvLatestProgs.DataSource = progmgr.SelectLatestProgByCategoryId("50");
                gvLatestProgs.DataBind();
            }
        }
--------------------编程问答-------------------- 你的ExecuteReader 没有再次打开。。。 --------------------编程问答-------------------- The connection's current state is closed

数据库连接没有打开。

--------------------编程问答-------------------- 应该是你 的两个数据源的链接打开冲突了
仔细看下你数据链接的打开和关闭操作 --------------------编程问答-------------------- The connection's current state is closed.

错了 connection --------------------编程问答-------------------- 你绑定了2个数据控件,从数据库取了两次数据。

数据库连接的打开关闭没有处理好。 --------------------编程问答-------------------- 我好想没写关闭数据库的方法.请问在哪里写? --------------------编程问答-------------------- 我用的是using,为什么不能及时关闭连接呢?
如下式代码:麻烦请看.

 public DataTable ExecuteQuery(string cmdText, SqlParameter[] paras, CommandType ct)
        {
            DataTable dt = new DataTable();
            cmd = new SqlCommand(cmdText, conn);
            cmd.CommandType = ct;
            cmd.Parameters.AddRange(paras);
            using (sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection))
            {
                dt.Load(sdr);
            }
            sdr.Close();
            return dt;
        }        
--------------------编程问答-------------------- 及时关闭了是关闭了。
你第一个gridview有数据,它读完数据关了,可是第二个读的时候打开了吗

 using是及时关闭释放资源 --------------------编程问答-------------------- 使用两个连接就可以了嘛。 --------------------编程问答-------------------- 那就是说,不应该关闭连接?删掉sdrClose()这个方法? --------------------编程问答-------------------- 你第一个连接完后就关闭连接了吧 --------------------编程问答-------------------- 你好,请问怎么写两个连接?
引用 9 楼 bighero4 的回复:
使用两个连接就可以了嘛。
--------------------编程问答-------------------- 是的.我是新手.
引用 11 楼 work_fei 的回复:
你第一个连接完后就关闭连接了吧
--------------------编程问答-------------------- 大哥们,麻烦给我提个醒.我想不出来 --------------------编程问答-------------------- 当然可以了,你在写第二个gridview的时候,就当没有第一个,重头来,试试就能熟练了

熟练了之后在代码重用。。 --------------------编程问答-------------------- Got it.
非常感谢大家!
请问,有没有别的办法解决?谢谢! --------------------编程问答--------------------
引用 16 楼 hlcfan 的回复:
Got it.
非常感谢大家!
请问,有没有别的办法解决?谢谢!

各自写各自的绑定
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,