access数据库时常连接出错

cenyuemin 2007-08-23 01:31:57
如果使用频率不高,没有问题,但如果连续的连接,就会出现不能连接的问题
代码如下:
public static OleDbConnection con()
{
string strConnection = System.Configuration.ConfigurationSettings.AppSettings["connstr"] + System.Web.HttpContext.Current.Server.MapPath(System.Configuration.ConfigurationSettings.AppSettings["dbpath"]);
OleDbConnection connect = new OleDbConnection(strConnection);
return connect;
}

public static string sel(string i)
{
string strConnection = System.Configuration.ConfigurationSettings.AppSettings["connstr"] + System.Web.HttpContext.Current.Server.MapPath(System.Configuration.ConfigurationSettings.AppSettings["dbpath"]);
OleDbConnection connect = new OleDbConnection(strConnection);
connect.Open();
OleDbCommand command = new OleDbCommand(i, connect);
OleDbDataReader reader = command.ExecuteReader();
reader.Read();
return (reader[0].ToString());
connect.Close();
}

下面是web.config的代码
<appSettings>
<add key="connstr" value="Provider=Microsoft.Jet.OLEDB.4.0;Data source="/>
<add key="dbpath" value="~/database/cydb.mdb"/>
</appSettings>
出错的时候,抱错信息是在 connect.Open();高亮
...全文
221 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
amandag 2007-08-25
  • 打赏
  • 举报
回复
如果还有问题最好看看其他的地方是不是有类似问题
amandag 2007-08-25
  • 打赏
  • 举报
回复
OleDbDataReader reader = command.ExecuteReader();
reader.Read();
return (reader[0].ToString());
=======================================================
OleDbDataReader reader = command.ExecuteReader(CommandBehavior.CloseConnection);
reader.Read();
string result = reader[0].ToString();
reader.Close();
connect.Close();
return result;
amandag 2007-08-25
  • 打赏
  • 举报
回复
你先return后面关闭连接的代码根本执行不到
cenyuemin 2007-08-25
  • 打赏
  • 举报
回复
还是不行,结果比前面好了,前面大概点10下就出现这个问题,但是现在还是出现了,不能访问数据库可是大问题呀
cenyuemin 2007-08-23
  • 打赏
  • 举报
回复
按Jinglecat(晓风残月)兄的做法做了,似乎问题好点,再测试1天,如果没有问题就给分
西安风影 2007-08-23
  • 打赏
  • 举报
回复
你程序绝对没错

<configuration>
<connectionStrings>
<add name="connstr" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\data.mdb"/>
</connectionStrings>
</configuration>
其中/|DataDirectory|表示App_Data目录
你可以用这个目录
wxlwxlwxlwxl 2007-08-23
  • 打赏
  • 举报
回复
如ls牛人所说你程序有问题.
仔细检查下吧.
Jinglecat 2007-08-23
  • 打赏
  • 举报
回复
显然,你的连接并没有关闭

return (reader[0].ToString()); // 已经 return 了,下一句 close 你说它还会执行嘛?
connect.Close();

》》

string result = reader[0].ToString();
connect.Close();
return result;
cenyuemin 2007-08-23
  • 打赏
  • 举报
回复
先谢谢楼上的,不过我放在空间上,怎么绝对路径?再说,如果不支持,那我怎么也可以做,只不过有时候会错。反正报错的时候,ACCESS自动生成的LDB文件一定存在
西安风影 2007-08-23
  • 打赏
  • 举报
回复
<appSettings>
<add key="connstr" value="Provider=Microsoft.Jet.OLEDB.4.0;Data source="/>
<add key="dbpath" value="~/database/cydb.mdb"/>
</appSettings>

配置文件有错误,config文件不支持相对路径 必须是绝对路径比如c:\\database\\cydb.mdb
或者
<configuration>
<connectionStrings>
<add name="connstr" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\data.mdb"/>
</connectionStrings>
</configuration>
其中/|DataDirectory|表示App_Data目录
ccp5780199 2007-08-23
  • 打赏
  • 举报
回复
难道是连接池问题?
不过ACCESS好像没这个吧?

62,047

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧