注册 登录
编程论坛 ASP.NET技术论坛

[求助]web.config文件中连接access数据库

wuhongyao3 发布于 2007-11-20 10:20, 3044 次点击
从网上和咱论坛上看了看这方面的帖子,都好象没说的太明白

有的说
asp.net 2.0
<add name="ConnectionString" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=数据库路径"
providerName="System.Data.OleDb" />
asp.net 1.0
<add key ="ConnectionString" value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=数据库路径"
providerName="System.Data.OleDb"/>
如果是这个的话,那数据库路径只绝对的,,,我拿到别人机器上不就不能用了吧

想要那中拿到别人机器上就可以用的代码

我的程序下有个文件夹app_data里边存放数据库

然后,我应该在web.config文件中怎么写 数据库 连接啊.
11 回复
#2
mkshaoshao2007-11-20 10:42
没好好看过,那个地方是绝对的吗?
#3
wuhongyao32007-11-20 10:45
那是不是就是写你程序文件夹下 ~/app_data/test.mdb

这样写 行吗?
#4
wuhongyao32007-11-20 10:54
<add name="ConnectionString" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=~/App_Data/blog.mdb"
providerName="System.Data.OleDb" />

strConnection = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;

alert('System.Data.OleDb.OleDbException: 'E:\学习软件\Visual Studio.2005\Common7\IDE\~\App_Data\blog.mdb'不是一个有效的路径。 确定路径名称拼写是否正确,以及是否连接到文件存放的服务器。 在 System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection) 在 System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject) 在 System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup) 在 System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) 在 System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) 在 System.Data.OleDb.OleDbConnection.Open() 在 user_mg.BindGrid() 位置 f:\个人练习\ASP.NET练习\个人Blog\user_mg.aspx.cs:行号 33')

我程序在F盘啊,这怎么回事..

#5
wuhongyao32007-11-20 10:57

ACCESS在Web.config里设置连接字符串!
在web.config中使用象ASP那样的Server.MapPath取数据库路径
但web.config不认识Server.MapPath,此方法致使程序无法调试,行不通。

如下方法,可以方便的移植程序路径而不必再去修改ACCESS数据库路径。

在web.config中的写法如下:

<appSettings>
<add key="ConnStr" value="provider=microsoft.jet.oledb.4.0;data source="/>
<add key="dbPath" value="/AppData/mydata.mdb"/>
</appSettings>

程序中的数据访问类中我把"ConnStr"和"dbPath"取出来再连接成一个字符串
代码如下:

/// <summary>
/// (静态)返回数据库连接串。
/// </summary>
protected static string GetConnString()
{
return
System.Configuration.ConfigurationSettings.AppSettings["ConnStr"]+ System.Web.HttpContext.Current.Server.MapPath(System.Configuration.ConfigurationSettings.AppSettings["DataPath"])+";";
}



这种也不行

它提示我 E:下文件找不到
我程序在F啊
我.NET装在E
这怎么会事.

#6
wuhongyao32007-11-20 11:03

这种方法可以了

<add name="strConnection" connectionString="provider=microsoft.jet.OLEDB.4.0;Data Source={0}" providerName="System.Data.OleDb"/>

调用的时候

string s = string.Format( System.Configuration.ConfigurationSettings.AppSettings["strConnection"],Server.MapPath("aa.mdb") );

我想问一下,我上边出现错误的方法 ,代码应该怎么写,谁能给说说,谢谢了.

[此贴子已经被作者于2007-11-20 11:04:08编辑过]

#7
wuhongyao32007-11-20 13:22
没人说啊,谁来说说,哈.....
#8
wuhongyao32007-11-20 21:32
自己顶起来啊,
来给我说下吧.
#9
caiyakang2007-11-23 02:13
存的话先是根的绝对路径

比如:<add name="AccessConn" connectionString="/DataBase/Data/Base/Ent.mdb" />

取的时候在这样
  string DbPath = System.Configuration.ConfigurationManager.ConnectionStrings["AccessConn"].ToString();
            string AccessStr = "Provider=Microsoft.Jet.OleDb.4.0;Data Source=" + System.Web.HttpContext.Current.Server.MapPath(DbPath);
#10
bygg2007-11-23 11:15
是的,存相对路径(根路径)比较好。
#11
wuhongyao32007-11-23 21:32
<add name="strConnection" connectionString="provider=microsoft.jet.OLEDB.4.0;Data Source={0}" providerName="System.Data.OleDb"/>

调用的时候

string s = string.Format( System.Configuration.ConfigurationSettings.AppSettings["strConnection"],Server.MapPath("aa.mdb") );


那跟这种方法有什么区别啊.
#12
yisaka2010-03-10 14:02
我的解决办法:
webConfig中
<connectionStrings >
    <add name="ConnectionString" connectionString="provider=Microsoft.Jet.OleDb.4.0;Data Source=|DataDirectory|\template.mdb;User ID=admin;Jet OleDb:Database Password=daqin"/>
  </connectionStrings>

调用:
  string ConnString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString.ToString();
  OleDbConnection Oledbcon = new OleDbConnection(ConnString);

关键是|DataDirectory| ,我也是从别人的程序中找来的,希望对你有帮助
1