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

count()函数用ExecuteScalar执行时,查到的数据库中记录数如何像是随机数啊

2011-12-17 
count()函数用ExecuteScalar执行时,查到的数据库中记录数怎么像是随机数啊,我在封装数据库操作的类中是这

count()函数用ExecuteScalar执行时,查到的数据库中记录数怎么像是随机数啊,
我在封装数据库操作的类中是这样写该函数的:
  public   SqlConnection   SqlCon;
        public   SqlCommand   SqlCom;
        public   SqlDataAdapter   SqlDa;
        public   SqlDataReader   SqlDr;
        public   string   sqlconnection   =   string.Empty;
#region   执行T-SQL语句,返回object
       
        public   object   ObjSql(string   mysql)
        {
                object   i;
                SetConnection();
                SqlCom   =   SqlCon.CreateCommand();
                SqlCom.CommandText   =   mysql;
                this.ConnOpen();
                i   =   SqlCom.ExecuteScalar();
                this.ConnClose();
                return   i;
        }
        #endregion
引用该函数的.aspx.cs
  protected   void   Page_Load(object   sender,   EventArgs   e)
        {
               
                if   (!IsPostBack)
                {
                        BindGrid();
                }

        }
  //数据帮定
        public   void   BindGrid()
        {
                int   ID   =   Convert.ToInt16(Request.QueryString[ "id "].ToString());
                string   sign   =   "% ";
                string   sqlstr   =   string.Empty;
                //根据主页面提交过来的搜索条件,进行相应的数据帮定
                if   (ID   ==   1)
                {
                        string   keywords   =   Request.QueryString[ "keys "].ToString();

                        string   style   =   Request.QueryString[ "style "].ToString();

                        //此处QG_STflInfo为视图

                        sqlstr   =   "select   *     from   articeMemuView ";

                        sqlstr   +=   "   where       ISPublic=1   and   "   +   style   +   "     like ' "   +   sign   +   keywords   +   sign   +   " ' ";



                        sqlstr   +=   "     order   by     AddDate   desc ";

            }
                if(ID==2)
                {
                        sqlstr   =   "select   *   from     articeMemuView   order   by   ID ";
                  }
                if(ID   ==   3)
                {
                     
                        sqlstr   =   "select   *   from     articeMemuView     where   FClassID=9   order   by   ID ";

                }
                DataSet   ds   =   bas.DsSql(sqlstr);

              if   (ds.Tables[0].Rows.Count   >   0)
                {
                        Label2.Text   =   bas.ObjSql(sqlstr).ToString();//出错点,查询结果的记录数与数据库中实际记录数不同,有时明明查出10条记录,可Label2却显示1条记录。
                        GridView1.DataSource   =   ds.Tables[0].DefaultView;

                        GridView1.DataBind();
                   
                }
                if   (ds.Tables[0].Rows.Count   ==   0)
                {
                        Label1.Visible   =   true;

                        GridView1.Visible   =   false;

                        Label1.Text   =   "没有找到你所需要的条件@_@ ";
                }
        }
各位高手帮帮我看看问题出在哪啊?谢谢了

[解决办法]
ExecuteScalar 返回查询所返回的结果集中第一行的第一列

不是记录数

*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码)

最新版本:20070130

http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html

热点排行