凌晨两点,新作了一个文章发布程序。。问题多多

 里面使用一个通用的数据库访问类UnDbAccess,主要实现了以下一些方法:

1.ExecuteNonQuery:执行INSERT、DELETE、UPDATE等SQL语句并返回受影响的行的数目。

2.ExecuteReader:执行SELECT操作并返回一个数据读取器对象。

3.ExecuteScalar:执行SQL操作并返回单值对象,即结果集中第一行的第一条数据。

4.PopulateDataSet:执行SQL操作,通过数据适配器对象将从数据源获取的数据填充到数据集对象中

并返回之。
------------------------------------------------
当然,别人写的

问题多多呀,我将常用的操作放在了一个newspublic类里面,例如访问常用的信息(站点名、地址、email)等:
public class NewsPublic
 {
  private string siteName,siteUrl,siteMail,siteLogo,siteAd,newsAd,affiche;
  
  
  public NewsPublic()
  {
   UnDbAccess uda=new UnDbAccess();
    OleDbDataReader dr=(OleDbDataReader)uda.ExecuteReader(SELECT * FROM SiteConfig WHERE id=1);
   if(dr.Read())
   {
    siteName=dr["db_SiteName"].ToString();
    siteUrl=dr["db_SiteUrl"].ToString();
    siteMail=dr["db_SiteMail"].ToString();
    siteLogo=dr["db_SiteLogo"].ToString();
    siteAd=dr["db_SiteAd"].ToString();
    newsAd=dr["db_NewsAd"].ToString();
    Affiche=dr["db_Affiche"].ToString();
   }
      
  }

---------------------------------
然后在首页default.aspx调用:

public class _default1 : System.Web.UI.Page
 {
  private NewsPublic np;
  protected System.Web.UI.HtmlControls.HtmlForm Form1;
  protected System.Web.UI.WebControls.DataGrid DataGrid_ShowAll;
  protected System.Web.UI.WebControls.Literal L_Affiche;
  protected System.Web.UI.WebControls.DataGrid DG_HotNews;
  protected System.Web.UI.WebControls.Literal SiteTitle;
  
 
  private void Page_Load(object sender, System.EventArgs e)
  {
   if(!Page.IsPostBack)
   {
    np=new NewsPublic();
    SiteTitle.Text=np.SiteName;
    L_Affiche.Text=np.Affiche;
    ShowNewsAll();
    ShowHotNews();
   }
  }



显示正常,可刷新几次后,问题就出来了:
System.NullReferenceException: 未将对象引用设置到对象的实例
说是newspublic类里面的
  OleDbDataReader dr=(OleDbDataReader)uda.ExecuteReader(SELECT * FROM SiteConfig WHERE id=1);
   if(dr.Read())
这个有问题,uda.ExecuteReader返回的是null
这是怎么回事呢,过一会在刷新又好用了,连着刷几次,又提示System.NullReferenceException
搞得我头痛死了。。。。。。。。。那个过来人指点一下

你可能感兴趣的:(凌晨两点,新作了一个文章发布程序。。问题多多)