首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

高手帮小弟我看看代码,刷新过多就出错

2012-01-24 
高手帮我看看代码,刷新过多就出错高手帮我看看代码,本人第一次写代码可能好多地方不规范,刷新过多就出现未

高手帮我看看代码,刷新过多就出错
高手帮我看看代码,本人第一次写代码可能好多地方不规范,刷新过多就出现未指定的错误,CS代码如下:

        private   void   dataBindToDatalist()
        {
                int   curPage   =   Convert.ToInt32(this.Label2.Text);
                OleDbConnection   con   =   db.creater();
                OleDbDataAdapter   oda   =   new   OleDbDataAdapter();
                oda.SelectCommand   =   new   OleDbCommand( "select   *   from   guestbook   where   allow=true   order   by   id   desc ",   con);
                DataSet   ds   =   new   DataSet();
                oda.Fill(ds,   "book ");
                this.DataList1.DataKeyField   =   "id ";
                System.Web.UI.WebControls.PagedDataSource   ps   =   new   PagedDataSource();
                ps.DataSource   =   ds.Tables[ "book "].DefaultView;
                ps.AllowPaging   =   true;
                ps.PageSize   =   4;
                ps.CurrentPageIndex   =   curPage   -   1;
                this.LinkButton1.Enabled   =   true;
                this.LinkButton2.Enabled   =   true;
                if   (curPage   ==   1)
                {
                        this.LinkButton1.Enabled   =   false;
                }
                if   (curPage   ==   ps.PageCount)
                {
                        this.LinkButton2.Enabled   =   false;
                }
                this.DataList1.DataSource   =   ps;
                this.DataList1.DataBind();
        }


        protected   void   ImageButton1_Click(object   sender,   ImageClickEventArgs   e)
        {
                if   (Request.Cookies[ "user "]   ==   null)
                {
                        Response.Write( " <script> alert( '您还没有登录,请先登录! ') </script> ");
                }
                else
                {
                        if   (String.Compare(Session[ "CheckCode "].ToString(),   this.TextBox6.Text,   true)   !=   0)


                        {
                                Response.Write( " <script> alert( '请输入真确的验证码! ') </script> ");
                        }
                        else
                        {    
                                string   guestName   =   HttpUtility.UrlDecode(Request.Cookies[ "user "].Value.ToString());
                                OleDbConnection   con   =   db.creater();
                                con.Open();
                                OleDbCommand   cmd   =   new   OleDbCommand( "insert   into   guestbook(guesttitle,guestName,guestcontent,guestdate)   Values   ( ' "   +   this.TextBox1.Text   +   " ', ' "   +   guestName   +   " ', ' "   +   this.TextBox9.Text   +   " ',# "   +   DateTime.Now   +   "#) ",   con);
                                cmd.ExecuteNonQuery();
                                con.Close();
                                con.Dispose();
                                Response.Write( " <script> alert( '恭喜您,留言成功,我们会尽快回复您! ') </script> ");
                        }
                }
        }
        public   string   roleName(string   guestName)//用户角色判断
        {
                string   name   =   guestName.Trim();
                Label   role   =   new   Label();
                OleDbConnection   con   =   db.creater();
                con.Open();
                OleDbCommand   cmd   =   new   OleDbCommand( "select   *   from   [user]   where   userName= ' "   +   name   +   " ' ",   con);
                OleDbDataReader   odr   =   cmd.ExecuteReader();
                if   (odr.Read())
                {
                        int   classID   =   Convert.ToInt32(odr[ "role "]);


                        OleDbCommand   cmd2   =   new   OleDbCommand( "select   *   from   usergroup   where   id= "   +   classID   +   " ",   con);
                        OleDbDataReader   dr   =   cmd2.ExecuteReader();
                        if   (dr.Read())
                        {
                                return   role.Text   =   dr[ "groupName "].ToString();
                        }
                        else
                        {
                                return   role.Text   =   "此用户还没有角色 ";
                        }
                        dr.Close();
                        dr.Dispose();
                }
                else
                {
                        return   role.Text   =   "用户名不存在 ";
                }
                odr.Close();
                odr.Dispose();
                con.Close();
                con.Dispose();
        }
        public   string   touxiang(string   guestName)// 头像选择
        {
                string   src   =   " ";
                OleDbConnection   conn   =   db.creater();
                conn.Open();
                OleDbCommand   cmd   =   new   OleDbCommand( "select   *   from   [user]   where   userName= ' "   +   guestName.Trim()   +   " ' ",   conn);
                OleDbDataReader   oda   =   cmd.ExecuteReader();
                if   (oda.Read())
                {
                        string   sex   =   oda[ "sex "].ToString();
                        if   (sex.Trim()   ==   "男 ")
                        {


                                return   src   =   "images/boy.gif ";
                        }
                        else
                        {
                                return   src   =   "images/girl.gif ";
                        }
                }
                else
                {
                        return   src   =   " ";
                }
                oda.Close();
                oda.Dispose();
                conn.Close();
                conn.Dispose();
        }
        public   bool   answer(string   s)
        {
                bool   guestanswer   =   false;
                if   (s.Trim()   ==   " ")
                {
                        return   guestanswer   =   false;
                }
                else
                {
                        return   guestanswer   =   true;
                }
        }
        public   string   resultValue(string   guestName,string   name)// 获取QQ、MSN、EMAIL的值
        {
                string   result   =   " ";
                OleDbConnection   con   =   db.creater();
                con.Open();
                OleDbCommand   cmd   =   new   OleDbCommand( "select   *   from   [user]   where   userName= ' "   +   guestName.Trim()   +   " ' ",   con);
                OleDbDataReader   dr   =   cmd.ExecuteReader();
                if   (dr.Read())
                {
                        return   result   =   dr[name].ToString();
                }


                else
                {
                        return   result   =   " ";
                }
                dr.Close();
                dr.Dispose();
                con.Close();
                con.Dispose();
        }
        protected   void   DataList1_DeleteCommand(object   source,   DataListCommandEventArgs   e)
        {
                string   ID   =   this.DataList1.DataKeys[e.Item.ItemIndex].ToString();
                OleDbConnection   con   =   db.creater();
                con.Open();
                OleDbCommand   cmd   =   new   OleDbCommand( "delete   from   guestbook   where   id= "   +   ID   +   " ",   con);
                cmd.ExecuteNonQuery();
        con.Close();
                con.Dispose();
                this.dataBindToDatalist();
                Response.Write( " <script> alert( '留言删除成功! ') </script> ");
        }
        protected   void   DataList1_EditCommand(object   source,   DataListCommandEventArgs   e)
        {
                this.DataList1.EditItemIndex   =   e.Item.ItemIndex;
                this.dataBindToDatalist();
        }
        protected   void   DataList1_UpdateCommand(object   source,   DataListCommandEventArgs   e)
        {
                string   ID   =   this.DataList1.DataKeys[e.Item.ItemIndex].ToString();
                string   title   =   ((TextBox)e.Item.FindControl( "TextBox3 ")).Text;
                string   content   =   ((TextBox)e.Item.FindControl( "TextBox2 ")).Text;
                OleDbConnection   con   =   db.creater();
                con.Open();
                OleDbCommand   cmd   =   new   OleDbCommand( "update   guestbook   set   guesttitle= ' "   +   title   +   " ',guestcontent= ' "+content+ " '   where   id= "   +   ID   +   " ",   con);
                cmd.ExecuteNonQuery();
                con.Close();
                con.Dispose();


                this.DataList1.EditItemIndex   =   -1;
                this.dataBindToDatalist();
                Response.Write( " <script> alert( '数据更新成功! ') </script> ");
        }
        protected   void   DataList1_CancelCommand(object   source,   DataListCommandEventArgs   e)
        {
                this.DataList1.EditItemIndex   =   -1;
                this.dataBindToDatalist();
        }
        public   bool   nullJudge(string   guestName,   string   name)//判断是否有QQ、MSN
        {
                bool   judge   =   true;
                OleDbConnection   con   =   db.creater();
                con.Open();
                OleDbCommand   cmd   =   new   OleDbCommand( "select   *   from   [user]   where   userName= ' "   +   guestName.Trim()   +   " ' ",   con);
                OleDbDataReader   dr   =   cmd.ExecuteReader();
                if   (dr.Read())
                {
                        string   str   =   dr[name].ToString();
                        if   (str.Trim()   == " ")
                        {
                                return   judge   =   false;
                        }
                        else
                        {
                                return   judge   =   true;
                        }
                }
                else
                {
                        return   judge   =   false;
                }
                dr.Close();
                dr.Dispose();
                con.Close();
                con.Dispose();
        }


 


------解决方案--------------------


大概看了下搂主的代码
每次DataBind之后ds没有清空

this.DataList1.DataSource = ps;
this.DataList1.DataBind();
ds.Clear();
ds.Dispose();
[解决办法]
而且
dataBindToDatalist里
没有关闭数据库连接的语句
需要加上
不然刷新过多可能引起连接池溢出

热点排行