热线:13628442993 | 联系方式
出现上述错误
问题出自超博cms中的DAL.dbhelper类
原因是DAL.dbhelper类中的ExecQuery方法,没有及时关闭Con
包括其中的ExecReader方法,也是如此,所以在前台如果使用getreader方法一定会暴服务器错误
解决办法:
设置CON为静态static,修改DAL中的this.con为全路径:DAL.DBHelper.con
只后台或前台出错的地方,加入
try
{
DAL.DBHelper.con.Close();
}
catch { }
如:在后台的admins/Articles/Edit.aspx.cs 中修改如下:
在Page_Load方法最后,加入
try
{
DAL.DBHelper.con.Close();
}
catch { }
形如:
protected void Page_Load(object sender, EventArgs e)
{
其他代码.....
try
{
DAL.DBHelper.con.Close();
}
catch { }
}
另外将
General.MessageTips mestip = new General.MessageTips();
BLL.Articles bll = new BLL.Articles();
Model.Articles model = new Model.Articles();
设置为公用变量,防止每次都初始化,容易报错,这样可以在页面加载完毕后确保一次性关闭连接
修改事件中 加入try
{
DAL.DBHelper.con.Open();
}
catch { }
打开连接即可
完整代码如下:
[code]using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.IO;
using System.Drawing;
public partial class Admins_Articles_Edit : System.Web.UI.Page
{
public string strImgDirName;
General.MessageTips mestip = new General.MessageTips();
BLL.Articles bll = new BLL.Articles();
Model.Articles model = new Model.Articles();
protected void Page_Load(object sender, EventArgs e)
{
int intChannelID = 0;
int.TryParse(Request.QueryString["ChannelID"], out intChannelID);
if (!IsPostBack)
{
Model.Channels modelChannel = new BLL.Channels().GetModel(intChannelID);
ltlChannelName.Text = ltlChannelName2.Text = modelChannel.ChannelName;
new General.Trees().dropTypesBind(dropTypes, modelChannel.ChannelID, modelChannel.Depth);
int intArticleID = 0;
int.TryParse(Request.QueryString["ArticleID"], out intArticleID);
txtPublished.Text = DateTime.Now.ToString();
ltlEditType.Text = "添加文章";
//如果是编辑状态,则填充原文内容
if (intArticleID > 0)
{
model = bll.GetModel(intArticleID);
if (!FillText(intChannelID, intArticleID))
return;
ltlEditType.Text = "编辑文章";
}
else if (!new General.Rights().InsertRights(Request.ServerVariables["PATH_INFO"], intChannelID))
return;
}
txtContent.UploadFolder = "upload/" + strImgDirName + "/";
strImgDirName = intChannelID.ToString();
try
{
DAL.DBHelper.con.Close();
}
catch { }
}
/// <summary>
/// 填充文章内容
/// </summary>
private bool FillText(int intChannelID,int intArticleID)
{
if (model.ChannelID != intChannelID)
{
mestip.AlertAndRedirect("该记录不属于该频道!", "/admins/default.aspx");
return false;
}
txtTitle.Text = model.Title;
txtTitle.ForeColor = Color.FromName(model.TitleColor);
hidTitleColor.Value = model.TitleColor;
dropTypes.SelectedValue = model.TypeID.ToString();
txtEditor.Text = model.Editor;
txtSource.Text = model.Source;
txtBrief.Text = model.Brief;
txtContent.Text = model.Content;
txtImg.Value = model.Pic;
img1.Src=File.Exists(Server.MapPath("~" + model.Pic)) ? model.Pic : "/UpLoadFiles/noPic.gif";
RadioButtonList1.SelectedValue = model.Commend.ToString();
RadioButtonList2.SelectedValue = model.NewsType.ToString();
BookName.Text = model.BookName.ToString();
BookEditor.Text = model.BookEditor;
BookPress.Text = model.BookPress;
BookTime.Text = model.BookTime;
BookNotes.Text = model.BookNotes;
PaperName.Text = model.PaperName;
PaperEditor.Text = model.PaperEditor;
PaperBook.Text = model.PaperBook;
PaperBookNumber.Text = model.PaperBookNumber;
PaperBookClass.Text = model.PaperBookClass;
PaperBrief.Text = model.PaperBrief;
PaperNotes.Text = model.PaperNotes;
AwardsPmName.Text = model.AwardsPmName;
AwardsClass.Text = model.AwardsClass;
AwardsPerson.Text = model.AwardsPerson;
AwardsTime.Text = model.AwardsTime;
AwardsNotes.Text = model.AwardsNotes;
PmName.Text = model.PmName;
PmSource.Text = model.PmSource;
PmNumber.Text = model.PmNumber;
PmPerson.Text = model.PmPerson;
PmUseTime.Text = model.PmUseTime;
PmNote.Text = model.PmNote;
sx.Text = model.Sort.ToString();
ht();
txtPublished.Text = model.Published.ToString();
btnPost.Text = "修 改";
return true;
}
/// <summary>
/// 发表文章
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnPost_Click(object sender, EventArgs e)
{
int intArticleID = 0;
int.TryParse(Request.QueryString["ArticleID"],out intArticleID);
if (intArticleID > 0)
model = bll.GetModel(intArticleID);
model.Title = txtTitle.Text;
model.TitleColor = hidTitleColor.Value;
model.TypeID = int.Parse(dropTypes.SelectedValue);
model.Pic = txtImg.Value;
model.Brief = txtBrief.Text.Trim();
model.Content = txtContent.Text.Trim();
model.Editor = txtEditor.Text.Trim();
model.Source = txtSource.Text.Trim();
model.Commend = (byte)RadioButtonList1.SelectedIndex;
model.Published = DateTime.Parse(txtPublished.Text);
model.NewsType = RadioButtonList2.SelectedValue.ToString();
model.BookName = BookName.Text.Trim();
model.BookEditor = BookEditor.Text.Trim();
model.BookPress = BookPress.Text.Trim();
model.BookTime = BookTime.Text.Trim();
model.BookNotes = BookNotes.Text.Trim();
model.PaperName = PaperName.Text.Trim();
model.PaperEditor = PaperEditor.Text.Trim();
model.PaperBook = PaperBook.Text.Trim();
model.PaperBookNumber = PaperBookNumber.Text.Trim();
model.PaperBookClass = PaperBookClass.Text.Trim();
model.PaperBrief = PaperBrief.Text.Trim();
model.PaperNotes = PaperNotes.Text.Trim();
model.AwardsPmName = AwardsPmName.Text.Trim();
model.AwardsClass = AwardsClass.Text.Trim();
model.AwardsPerson = AwardsPerson.Text.Trim();
model.AwardsTime = AwardsTime.Text.Trim();
model.AwardsNotes = AwardsNotes.Text.Trim();
model.PmName = PmName.Text.Trim();
model.PmSource = PmSource.Text.Trim();
model.PmNumber = PmNumber.Text.Trim();
model.PmPerson = PmPerson.Text.Trim();
model.PmUseTime = PmUseTime.Text.Trim();
model.PmNote = PmNote.Text.Trim();
model.Sort = int.Parse(sx.Text);
string strTuUrl="List.aspx?ChannelID=" + Request.QueryString["ChannelID"];
if (model.ArticleID > 0) //修改文章
{
try
{
DAL.DBHelper.con.Close();
}
catch { }
try
{
try
{
DAL.DBHelper.con.Open();
}
catch { }
int rr = bll.Update(model);
if (rr > 0)
{
mestip.AlertAndRedirect("修改成功!", strTuUrl);
}
}
catch
{
mestip.AlertAndRedirect("记录不存在或传参错误!", strTuUrl);
}
}
else //发表新文章
{
model.ChannelID = int.Parse(Request.QueryString["ChannelID"]);
if(bll.Insert(model)>0)
mestip.AlertAndRedirect("添加成功!", strTuUrl);
}
}
protected void RadioButtonList2_SelectedIndexChanged(object sender, EventArgs e)
{
ht();
}
public void ht()
{
string t = RadioButtonList2.SelectedValue;
t1.Visible = false;
t2.Visible = false;
t3.Visible = false;
t4.Visible = false;
switch (t)
{
case "1":
t1.Visible = true;
break;
case "2":
t2.Visible = true;
break;
case "3":
t3.Visible = true;
break;
case "4":
t4.Visible = true;
break;
default:
break;
}
}
}
[/code]