问题错误图:
就是上传时是正常的!后来运行然后多点几个页面时就会出现上面这个问题的;
用的数据库是ACCESS的;
数据库操作类的为下面:会不会是数据库没有连接没有关闭啊!下面这个要类要怎么改啊using System;
using System.Data;
using System.Configuration;
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.Data.OleDb;/// <summary>
///accessDB 的摘要说明
/// </summary>
public class AccessDbClass
{ //变量声明处#region 变量声明处
public OleDbConnection Conn;
public string ConnString;//连接字符串 /// <summary>
/// 构造函数
/// </summary>
public AccessDbClass()
{
ConnString = ConfigurationSettings.AppSettings["OLEDBCONNECTIONSTRING"] + HttpContext.Current.Server.MapPath(ConfigurationSettings.AppSettings["dbPath"]);
Conn = new OleDbConnection(ConnString);
Conn.Open();
}
//构造函数与连接关闭数据库#region 构造函数与连接关闭数据库
/// <summary>
/// 构造函数
/// </summary>
/// <param name="Dbpath">ACCESS数据库路径-webconfig中自定义</param>
public AccessDbClass(string DBpath)
{
ConnString = ConfigurationManager.ConnectionStrings["DB"].ConnectionString + System.AppDomain.CurrentDomain.BaseDirectory + ConfigurationManager.ConnectionStrings[DBpath].ConnectionString;
Conn = new OleDbConnection(ConnString);
Conn.Open();
} /// <summary>
/// 打开数据源链接
/// </summary>
/// <returns></returns>
public OleDbConnection DbConn()
{
Conn.Open();
return Conn;
} /// <summary>
/// 请在数据传递完毕后调用该函数,关闭数据链接。
/// </summary>
public void Close()
{
Conn.Close();
}
/// 数据库基本操作#region 数据库基本操作
/// <summary>
/// 根据SQL命令返回数据DataTable数据表,
/// 可直接作为dataGridView的数据源
/// </summary>
/// <param name="SQL"></param>
/// <returns></returns>
public DataTable SelectToDataTable(string SQL)
{
OleDbDataAdapter adapter = new OleDbDataAdapter();
OleDbCommand command = new OleDbCommand(SQL, Conn);
adapter.SelectCommand = command;
DataTable Dt = new DataTable();
adapter.Fill(Dt);
return Dt;
} /// <summary>
/// 根据SQL命令返回数据DataSet数据集,其中的表可直接作为dataGridView的数据源。
/// </summary>
/// <param name="SQL"></param>
/// <param name="subtableName">在返回的数据集中所添加的表的名称</param>
/// <returns></returns>
public DataSet SelectToDataSet(string SQL, string subtableName)
{
OleDbDataAdapter adapter = new OleDbDataAdapter();
OleDbCommand command = new OleDbCommand(SQL, Conn);
adapter.SelectCommand = command;
DataSet Ds = new DataSet();
Ds.Tables.Add(subtableName);
adapter.Fill(Ds, subtableName);
return Ds;
} /// <summary>
/// 在指定的数据集中添加带有指定名称的表,由于存在覆盖已有名称表的危险,返回操作之前的数据集。
/// </summary>
/// <param name="SQL"></param>
/// <param name="subtableName">添加的表名</param>
/// <param name="DataSetName">被添加的数据集名</param>
/// <returns></returns>
public DataSet SelectToDataSet(string SQL, string subtableName, DataSet DataSetName)
{
OleDbDataAdapter adapter = new OleDbDataAdapter();
OleDbCommand command = new OleDbCommand(SQL, Conn);
adapter.SelectCommand = command;
DataTable Dt = new DataTable();
DataSet Ds = new DataSet();
Ds = DataSetName;
adapter.Fill(DataSetName, subtableName);
return Ds;
} /// <summary>
/// 专门用来分页控件AspNetPage使用
/// </summary>
/// <param name="commandText">要执行的SQL语句</param>
/// <param name="AspNetPageSize">AspNetPage第一个参数</param>
/// <param name="PageSize">AspNetPage一页有几个</param>
/// <param name="TableName">表名</param>
/// <returns>DataTable</returns>
public DataTable SelectToAspnetPage(string commandText, int AspNetPageSize, int PageSize, string TableName)
{
DataSet ds = new DataSet();
using (OleDbDataAdapter adapter = new OleDbDataAdapter(commandText,Conn))
{
adapter.Fill(ds, AspNetPageSize, PageSize, TableName);
return ds.Tables[TableName];
}
} /// <summary>
/// 根据SQL命令返回OleDbDataAdapter,
/// 使用前请在主程序中添加命名空间System.Data.OleDb
/// </summary>
/// <param name="SQL"></param>
/// <returns></returns>
public OleDbDataAdapter SelectToOleDbDataAdapter(string SQL)
{
OleDbDataAdapter adapter = new OleDbDataAdapter();
OleDbCommand command = new OleDbCommand(SQL, Conn);
adapter.SelectCommand = command;
return adapter;
} /// <summary>
/// 执行SQL命令,不需要返回数据的修改,删除可以使用本函数
/// </summary>
/// <param name="SQL"></param>
/// <returns></returns>
public bool ExecuteSQLNonquery(string SQL)
{
OleDbCommand cmd = new OleDbCommand(SQL, Conn);
try
{
cmd.ExecuteNonQuery();
return true;
}
catch
{
return false;
}
} public bool ExecuteInsertNonquery(string SQL)
{
OleDbCommand cmd = new OleDbCommand(SQL, Conn);
int count =Convert.ToInt32(cmd.ExecuteNonQuery());
if (count > 0)
{
return true;
}
else
{
return false;
}
} /// <summary>
/// 执行SQL命令,数据是否存在,返回bool
/// </summary>
/// <param name="SQL"></param>
/// <returns></returns>
public bool Exists(string SQL)
{
OleDbCommand cmd = new OleDbCommand(SQL, Conn);
int count = Convert.ToInt32(cmd.ExecuteScalar());
if (count > 0)
{
return true;
}
else
{
return false;
}
} /// <summary>
/// 执行SQL命令,数据返回当前值,返回INT
/// </summary>
/// <param name="SQL"></param>
/// <returns></returns>
public int ExistsCount(string SQL)
{
OleDbCommand cmd = new OleDbCommand(SQL, Conn);
int count = Convert.ToInt32(cmd.ExecuteScalar());
return count;
} /// <summary>
/// 执行SQL命令,查询记录总数,返回int
/// </summary>
/// <param name="SQL"></param>
/// <returns></returns>
public int MaxCount(string SQL)
{
OleDbCommand cmd = new OleDbCommand(SQL, Conn);
int count = Convert.ToInt32(cmd.ExecuteScalar());
if (count > 0)
{
return count;
}
else
{
return 0;
}
}
}
页面调用: AccessDbClass accessHelp = new AccessDbClass();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
string SqlSiteInfo = "select * from T_ComparyProfile where Langery='ZH'";
DataTable SiteTable = accessHelp.SelectToDataTable(SqlSiteInfo);
if (SiteTable.Rows.Count > 0)
{
this.li_Conf.Text = SiteTable.Rows[0]["Context"].ToString();
} accessHelp.Close(); }
}
就是上传时是正常的!后来运行然后多点几个页面时就会出现上面这个问题的;
用的数据库是ACCESS的;
数据库操作类的为下面:会不会是数据库没有连接没有关闭啊!下面这个要类要怎么改啊using System;
using System.Data;
using System.Configuration;
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.Data.OleDb;/// <summary>
///accessDB 的摘要说明
/// </summary>
public class AccessDbClass
{ //变量声明处#region 变量声明处
public OleDbConnection Conn;
public string ConnString;//连接字符串 /// <summary>
/// 构造函数
/// </summary>
public AccessDbClass()
{
ConnString = ConfigurationSettings.AppSettings["OLEDBCONNECTIONSTRING"] + HttpContext.Current.Server.MapPath(ConfigurationSettings.AppSettings["dbPath"]);
Conn = new OleDbConnection(ConnString);
Conn.Open();
}
//构造函数与连接关闭数据库#region 构造函数与连接关闭数据库
/// <summary>
/// 构造函数
/// </summary>
/// <param name="Dbpath">ACCESS数据库路径-webconfig中自定义</param>
public AccessDbClass(string DBpath)
{
ConnString = ConfigurationManager.ConnectionStrings["DB"].ConnectionString + System.AppDomain.CurrentDomain.BaseDirectory + ConfigurationManager.ConnectionStrings[DBpath].ConnectionString;
Conn = new OleDbConnection(ConnString);
Conn.Open();
} /// <summary>
/// 打开数据源链接
/// </summary>
/// <returns></returns>
public OleDbConnection DbConn()
{
Conn.Open();
return Conn;
} /// <summary>
/// 请在数据传递完毕后调用该函数,关闭数据链接。
/// </summary>
public void Close()
{
Conn.Close();
}
/// 数据库基本操作#region 数据库基本操作
/// <summary>
/// 根据SQL命令返回数据DataTable数据表,
/// 可直接作为dataGridView的数据源
/// </summary>
/// <param name="SQL"></param>
/// <returns></returns>
public DataTable SelectToDataTable(string SQL)
{
OleDbDataAdapter adapter = new OleDbDataAdapter();
OleDbCommand command = new OleDbCommand(SQL, Conn);
adapter.SelectCommand = command;
DataTable Dt = new DataTable();
adapter.Fill(Dt);
return Dt;
} /// <summary>
/// 根据SQL命令返回数据DataSet数据集,其中的表可直接作为dataGridView的数据源。
/// </summary>
/// <param name="SQL"></param>
/// <param name="subtableName">在返回的数据集中所添加的表的名称</param>
/// <returns></returns>
public DataSet SelectToDataSet(string SQL, string subtableName)
{
OleDbDataAdapter adapter = new OleDbDataAdapter();
OleDbCommand command = new OleDbCommand(SQL, Conn);
adapter.SelectCommand = command;
DataSet Ds = new DataSet();
Ds.Tables.Add(subtableName);
adapter.Fill(Ds, subtableName);
return Ds;
} /// <summary>
/// 在指定的数据集中添加带有指定名称的表,由于存在覆盖已有名称表的危险,返回操作之前的数据集。
/// </summary>
/// <param name="SQL"></param>
/// <param name="subtableName">添加的表名</param>
/// <param name="DataSetName">被添加的数据集名</param>
/// <returns></returns>
public DataSet SelectToDataSet(string SQL, string subtableName, DataSet DataSetName)
{
OleDbDataAdapter adapter = new OleDbDataAdapter();
OleDbCommand command = new OleDbCommand(SQL, Conn);
adapter.SelectCommand = command;
DataTable Dt = new DataTable();
DataSet Ds = new DataSet();
Ds = DataSetName;
adapter.Fill(DataSetName, subtableName);
return Ds;
} /// <summary>
/// 专门用来分页控件AspNetPage使用
/// </summary>
/// <param name="commandText">要执行的SQL语句</param>
/// <param name="AspNetPageSize">AspNetPage第一个参数</param>
/// <param name="PageSize">AspNetPage一页有几个</param>
/// <param name="TableName">表名</param>
/// <returns>DataTable</returns>
public DataTable SelectToAspnetPage(string commandText, int AspNetPageSize, int PageSize, string TableName)
{
DataSet ds = new DataSet();
using (OleDbDataAdapter adapter = new OleDbDataAdapter(commandText,Conn))
{
adapter.Fill(ds, AspNetPageSize, PageSize, TableName);
return ds.Tables[TableName];
}
} /// <summary>
/// 根据SQL命令返回OleDbDataAdapter,
/// 使用前请在主程序中添加命名空间System.Data.OleDb
/// </summary>
/// <param name="SQL"></param>
/// <returns></returns>
public OleDbDataAdapter SelectToOleDbDataAdapter(string SQL)
{
OleDbDataAdapter adapter = new OleDbDataAdapter();
OleDbCommand command = new OleDbCommand(SQL, Conn);
adapter.SelectCommand = command;
return adapter;
} /// <summary>
/// 执行SQL命令,不需要返回数据的修改,删除可以使用本函数
/// </summary>
/// <param name="SQL"></param>
/// <returns></returns>
public bool ExecuteSQLNonquery(string SQL)
{
OleDbCommand cmd = new OleDbCommand(SQL, Conn);
try
{
cmd.ExecuteNonQuery();
return true;
}
catch
{
return false;
}
} public bool ExecuteInsertNonquery(string SQL)
{
OleDbCommand cmd = new OleDbCommand(SQL, Conn);
int count =Convert.ToInt32(cmd.ExecuteNonQuery());
if (count > 0)
{
return true;
}
else
{
return false;
}
} /// <summary>
/// 执行SQL命令,数据是否存在,返回bool
/// </summary>
/// <param name="SQL"></param>
/// <returns></returns>
public bool Exists(string SQL)
{
OleDbCommand cmd = new OleDbCommand(SQL, Conn);
int count = Convert.ToInt32(cmd.ExecuteScalar());
if (count > 0)
{
return true;
}
else
{
return false;
}
} /// <summary>
/// 执行SQL命令,数据返回当前值,返回INT
/// </summary>
/// <param name="SQL"></param>
/// <returns></returns>
public int ExistsCount(string SQL)
{
OleDbCommand cmd = new OleDbCommand(SQL, Conn);
int count = Convert.ToInt32(cmd.ExecuteScalar());
return count;
} /// <summary>
/// 执行SQL命令,查询记录总数,返回int
/// </summary>
/// <param name="SQL"></param>
/// <returns></returns>
public int MaxCount(string SQL)
{
OleDbCommand cmd = new OleDbCommand(SQL, Conn);
int count = Convert.ToInt32(cmd.ExecuteScalar());
if (count > 0)
{
return count;
}
else
{
return 0;
}
}
}
页面调用: AccessDbClass accessHelp = new AccessDbClass();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
string SqlSiteInfo = "select * from T_ComparyProfile where Langery='ZH'";
DataTable SiteTable = accessHelp.SelectToDataTable(SqlSiteInfo);
if (SiteTable.Rows.Count > 0)
{
this.li_Conf.Text = SiteTable.Rows[0]["Context"].ToString();
} accessHelp.Close(); }
}
{
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (cn.State == ConnectionState.Open)
{
cn.Close();
}
}
如果不是这个问题的话 那就是
在web.config中
<system.web>
<identity impersonate="true"/>//改为false
</system.web>
/// 数据库基本操作#region 数据库基本操作
/// <summary>
/// 根据SQL命令返回数据DataTable数据表,
/// 可直接作为dataGridView的数据源
/// </summary>
/// <param name="SQL"></param>
/// <returns></returns>
public DataTable SelectToDataTable(string SQL)
{
OleDbDataAdapter adapter = new OleDbDataAdapter();
OleDbCommand command = new OleDbCommand(SQL, Conn);
adapter.SelectCommand = command;
DataTable Dt = new DataTable();
adapter.Fill(Dt);
Conn.Close();
return Dt;
}
<system.web>
<identity impersonate="true"/>//改为false
</system.web>这个我也加的!
还有关于列名的!要是列名一开始就有问题的话就不会有时可以访问有时就访问不了的!我刚上传上去时就每个页面都可以运行查看的!都是没有问题的!但多点几次页面就会出现上面的问题的!所以怀疑是不是数据库连接没有关闭啊!
代码就在上面的大家帮忙看看的!
和我的 一摸一样的 错误 也是 ACCESS 的 数据库
建议楼主 好好 检查下 数据库操作类 不行的话M我 QQ547006159