CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

天拉。救救我。我要疯了

楼主mextb1860()2006-12-03 22:33:15 在 .NET技术 / ASP.NET 提问

Default.aspx页面  
   
      protected   void   Page_Load(object   sender,   EventArgs   e)  
          {  
                  if   (!IsPostBack)  
                  {  
                          DataGrid1.DataSource   =DbSqlOperation.GetDataReader("Select   *   from   Menu");  
                          DataGrid1.DataBind();  
                          DbSqlOperation.CloseCon();  
                  }  
          }  
  ----------------------------------------------------------------------  
  DbSqlOperation.cs页面  
  public   class   DbSqlOperation  
  {  
          protected   static   OleDbConnection   Con   =   Dbcon.CreateCon();  
          protected   static   OleDbCommand   Cmd   =   new   OleDbCommand();  
          protected   static   OleDbDataReader   dr   =   null;  
  public   DbSqlOperation()  
  {  
  //  
  //   TODO:   在此处添加构造函数逻辑  
  //  
  }  
          ///   <summary>  
          ///   打开数据库连接  
          ///   </summary>  
          private   static   void   OpenCon()  
          {  
                  if   (Con.State   ==   ConnectionState.Closed)  
                  {  
                          try  
                          {  
                                  Con.Open();  
                          }  
                          catch   (Exception   e)  
                          {  
                                  throw   new   Exception(e.Message);  
                          }  
                  }  
          }  
          ///   <summary>  
          ///   关闭连接,并且释放连接和命令对象  
          ///   </summary>  
          public   static   void   CloseCon()  
          {  
                  if   (Con.State   ==   ConnectionState.Open)  
                  {  
                          Con.Close();  
                          Con.Dispose();  
                          Cmd.Dispose();  
                  }  
          }  
          ///   <summary>  
          ///   释放OledbDataReader对象  
          ///   </summary>  
          public   static   void   CloseDataReader()  
          {  
                  dr.Close();  
                  dr.Dispose();  
          }  
          ///   <summary>  
          ///   执行SQL语句,返回OleDbDataReader  
          ///   </summary>  
          ///   <param   name="sql">string</param>  
          ///   <returns>OleDbDataReader</returns>  
          public   static   OleDbDataReader   GetDataReader(string   sql)  
          {  
                  Cmd.Connection   =   Con;  
                  Cmd.CommandType   =   CommandType.Text;  
                  Cmd.CommandText   =   sql;  
                  try  
                  {  
                          OpenCon();  
                          dr   =   Cmd.ExecuteReader();  
                          return   dr;  
                  }  
                  catch   (Exception   e)  
                  {  
                          CloseCon();  
                          throw   new   Exception(e.Message);  
                  }  
          }  
          ///   <summary>  
          ///   执行SQL语句,返回DataSet  
          ///   </summary>  
          ///   <param   name="sql">string</param>  
          ///   <returns>DataSet</returns>  
          public   static   DataSet   GetDataSet(string   sql)  
          {  
                  DataSet   ds   =   new   DataSet();  
                  OleDbDataAdapter   sda   =   new   OleDbDataAdapter();  
                  Cmd.Connection   =   Con;  
                  Cmd.CommandType   =   CommandType.Text;  
                  Cmd.CommandText   =   sql;  
                  try  
                  {  
                          OpenCon();  
                          sda.SelectCommand   =   Cmd;  
                          sda.Fill(ds);  
                          return   ds;  
                  }  
                  catch(Exception   e)  
                  {  
                          throw   new   Exception(e.Message);  
                  }  
                  finally  
                  {  
                          CloseCon();  
                          sda.Dispose();  
                  }  
                 
          }  
           
   
  ----------------------------------------------------------------------  
  我要疯了。   老是调试..老是数据库连接的问题。第一次可以连.  
  刷新一下。就报错.我要疯了。哪个大侠解答一下。我全部的分都给了  
   
  问题点数:70、回复次数:13Top

1 楼netharry()回复于 2006-12-03 22:45:52 得分 0

DataGrid能直接绑定一个OleDbDataReader对象吗?我第一次这么看到。Top

2 楼hy_lihuan(我想早恋,可是已经晚了)回复于 2006-12-03 22:53:07 得分 0

建议去下载一个sqlHelper的程序下来用一下好了,那就不用自己去写数据库的连接了Top

3 楼webhermit(杀人眨一眼)回复于 2006-12-03 22:54:26 得分 0

楼上的,可以,我就经常这样用!Top

4 楼mextb1860()回复于 2006-12-03 22:56:13 得分 0

大哥们..     帮我解决下好吗?  
  我要疯了Top

5 楼Edisoncat(http://www.Edisonliu.com)回复于 2006-12-03 22:57:27 得分 0

把   static去掉   试下Top

6 楼mextb1860()回复于 2006-12-03 22:58:53 得分 0

我的是Access数据库呢Top

7 楼liuqiyc(cyiquil)回复于 2006-12-03 23:24:52 得分 0

public   static   void   CloseCon()  
          {  
                  if   (Con.State   ==   ConnectionState.Open)  
                  {  
                          Con.Close();  
                          Con.Dispose();------------删掉试试  
                          Cmd.Dispose();------------删掉试试  
                  }  
          }  
  Top

8 楼mextb1860()回复于 2006-12-04 01:37:53 得分 0

Microsoft   Data   Access   Application   Block   for   .NET   3.0   在哪里下载啊。   谁有简单使用的事例吗??ACCESS数据库也可以用吗Top

9 楼etilm(周贤)回复于 2006-12-04 08:22:16 得分 0

晕,长代码Top

10 楼tete(N多Flash-www.ndflash.com)回复于 2006-12-04 08:25:33 得分 0

把错误代码贴出来咧Top

11 楼keystudio(抽刀断水)回复于 2006-12-04 08:57:27 得分 0

第一次可以连.  
  刷新一下。就报错.  
  if   (!IsPostBack)  
                  {  
                          DataGrid1.DataSource   =DbSqlOperation.GetDataReader("Select   *   from   Menu");  
                          DataGrid1.DataBind();  
                          DbSqlOperation.CloseCon();  
                  }  
  ---------------------------------  
   
  去掉if   (!IsPostBack)  
                  {}Top

12 楼kui1015(飞奔在孤独中)回复于 2006-12-04 09:20:40 得分 0

^  
  |Top

13 楼knifesky(有事烧纸)回复于 2006-12-04 09:29:48 得分 70

if(使用GetDataSet方法的话就不出错)  
  {  
  //DataApater自动管理连接。  
  问题一定出在你的DbSqlOperation.CloseCon()方法上,或者说,根本不应该这么用!  
  }  
  else  
  {  
  我也不知道了.  
  }  
   
  还有关于静态方法,感觉你把con、cmd等都设置成静态变量是为了调试通过(静态方法只能引用静态变量),所以感觉这么写不是特别合理,感觉比较怪异!Top

相关问题

关键词

得分解答快速导航

  • 帖主:mextb1860
  • knifesky

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo