本人写一段访问ACCESS数据的程序,在正常点击数据访问菜单时,一点多没有问题,可在快速点击数据访问菜单时,访问数据库就出错。此时catch到一个“未定义的错误”,我感到很疑惑,下面是我的代码,我把这段代码封装在一个,webClass.cs里面,在页面上用new方法引用,例如:
WebClass MyCls =new WebClass();在页面即用MyCls. DataBaseOperating(QueryString);来访问数据---webClass.cs中全局静态变量--------------使用一个全局静态变量,是想使用一个连接,而不要重复创建连接,我试图每次访问,每次多创建,但还是那样。
static OleDbConnection OleDBDataConnection=null;--函数名----------------------------------
public bool DataBaseOperating(string QueryString)
--函数内容--------------------------------
BackDataTable=new DataTable();
int Operating=2;
string[] SqlType={"update","insert","delete","drop"};
string Tmp=QueryString.ToLower();for(int i=0;i<=3;i++){if(Tmp.IndexOf(SqlType[i],0)>=0){Operating=1;break;}}try
{
//Access
OleDbDataAdapter DtAdapter = new OleDbDataAdapter();
OleDbCommand DataCmd = new OleDbCommand();
if (Operating==1)
{
DataCmd=new OleDbCommand(QueryString,OleDBDataConnection);
DataCmd.ExecuteNonQuery();
DataCmd.Dispose();
}
else if (Operating ==2)
{
BackDataTable.Dispose();
DtAdapter=new OleDbDataAdapter(QueryString,OleDBDataConnection);
DtAdapter.Fill(BackDataTable);
DtAdapter.Dispose();
//如果为空记录
if(BackDataTable==null)return false;
}
return true;
}
catch(Exception ErrDis)
{
ErrDiscroption=ErrDis.ToString(); 快速访问时这里捕获“未定义的错误”,
}
return false;
WebClass MyCls =new WebClass();在页面即用MyCls. DataBaseOperating(QueryString);来访问数据---webClass.cs中全局静态变量--------------使用一个全局静态变量,是想使用一个连接,而不要重复创建连接,我试图每次访问,每次多创建,但还是那样。
static OleDbConnection OleDBDataConnection=null;--函数名----------------------------------
public bool DataBaseOperating(string QueryString)
--函数内容--------------------------------
BackDataTable=new DataTable();
int Operating=2;
string[] SqlType={"update","insert","delete","drop"};
string Tmp=QueryString.ToLower();for(int i=0;i<=3;i++){if(Tmp.IndexOf(SqlType[i],0)>=0){Operating=1;break;}}try
{
//Access
OleDbDataAdapter DtAdapter = new OleDbDataAdapter();
OleDbCommand DataCmd = new OleDbCommand();
if (Operating==1)
{
DataCmd=new OleDbCommand(QueryString,OleDBDataConnection);
DataCmd.ExecuteNonQuery();
DataCmd.Dispose();
}
else if (Operating ==2)
{
BackDataTable.Dispose();
DtAdapter=new OleDbDataAdapter(QueryString,OleDBDataConnection);
DtAdapter.Fill(BackDataTable);
DtAdapter.Dispose();
//如果为空记录
if(BackDataTable==null)return false;
}
return true;
}
catch(Exception ErrDis)
{
ErrDiscroption=ErrDis.ToString(); 快速访问时这里捕获“未定义的错误”,
}
return false;
------------------------------------------
这里不要使用静态变量,并发问题严重的.
http://lixianhuei.cnblogs.com/archive/2005/08/31/227274.html