连接到asp.net c#(托管网站)中的数据库(MS Access)
我有一个托管网站,我需要添加一个带有密码和登录信息的数据库。(MS Access DB),我尝试了很多,但无法与它连接(在本地机器上可以正常工作)。我试图更改连接字符串,但仍然不起作用。数据库位于文件夹App_Data中。以下是我在连接到asp.net c#(托管网站)中的数据库(MS Access),c#,asp.net,ms-access,C#,Asp.net,Ms Access,我有一个托管网站,我需要添加一个带有密码和登录信息的数据库。(MS Access DB),我尝试了很多,但无法与它连接(在本地机器上可以正常工作)。我试图更改连接字符串,但仍然不起作用。数据库位于文件夹App_Data中。以下是我在Login.aspx页面中键入的内容: OleDbConnection con = new OleDbConnection(); con.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Sourc
Login.aspx
页面中键入的内容:
OleDbConnection con = new OleDbConnection();
con.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source="
+ Server.MapPath("~\\App_Data\\WebSiteDatabase.accdb");
con.Open();
这是行不通的。我需要改变什么?我已将我的网站放在somee.com上您是否查看了somee上的帮助页面以连接到access数据库 引用Somee.com的帮助: 使用无DSN连接连接到MS access数据库
仅限Doka 提供到Access数据库的无DSN连接,因为它们是 速度更快,而且没有可能的名称冲突。大部分 问题在于选择正确的连接字符串。这里有一个例子 到MS Access数据库的已测试连接字符串的数目:
我们假设您的数据库位于“database”子文件夹中,其名称为“TestDB.mdb”
你必须使用
Server.MapPath(“Database\TestDB.mdb”)
以获取物理数据
数据库的位置
所以连接字符串应该是:
"PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=" & Server.MapPath("Database\TestDB.mdb")
以及如何利用它:
OleDbConnection conn = null;
OleDbDataReader reader = null;
try
{
conn = new OleDbConnection(
"Provider=Microsoft.Jet.OLEDB.4.0; " +
"Data Source=" + Server.MapPath("Database/TestDB.mdb"));
conn.Open();
OleDbCommand cmd =
new OleDbCommand("Select * FROM Table1", conn);
reader = cmd.ExecuteReader();
datagrid.DataSource = reader;
datagrid.DataBind();
}
// catch (Exception e)
// {
// Response.Write(e.Message);
// Response.End();
// }
finally
{
if (reader != null) reader.Close();
if (conn != null) conn.Close();
}
您是否查看了SOMEE上的帮助页面以连接到access数据库 引用Somee.com的帮助: 使用无DSN连接连接到MS access数据库
仅限Doka 提供到Access数据库的无DSN连接,因为它们是 速度更快,而且没有可能的名称冲突。大部分 问题在于选择正确的连接字符串。这里有一个例子 到MS Access数据库的已测试连接字符串的数目:
我们假设您的数据库位于“database”子文件夹中,其名称为“TestDB.mdb”
你必须使用
Server.MapPath(“Database\TestDB.mdb”)
以获取物理数据
数据库的位置
所以连接字符串应该是:
"PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=" & Server.MapPath("Database\TestDB.mdb")
以及如何利用它:
OleDbConnection conn = null;
OleDbDataReader reader = null;
try
{
conn = new OleDbConnection(
"Provider=Microsoft.Jet.OLEDB.4.0; " +
"Data Source=" + Server.MapPath("Database/TestDB.mdb"));
conn.Open();
OleDbCommand cmd =
new OleDbCommand("Select * FROM Table1", conn);
reader = cmd.ExecuteReader();
datagrid.DataSource = reader;
datagrid.DataBind();
}
// catch (Exception e)
// {
// Response.Write(e.Message);
// Response.End();
// }
finally
{
if (reader != null) reader.Close();
if (conn != null) conn.Close();
}
为什么不使用附带的SQL Express数据库?这是一项教育任务……服务器上是否安装了“程序”访问权限?此外,每当我看到有人使用网站访问权限时,我都会畏缩。请不要这样做。他们有这样的功能,但我不知道应该在哪里编写itDump access—它不适用于托管的web环境。改用SQL CE 4-因为这就是为什么不使用附带的SQL Express数据库的原因?这是一项教育任务…服务器上是否安装了“程序”访问权限?此外,每当我看到有人使用网站访问权限时,我都会畏缩。请不要这样做。他们有这样的功能,但我不知道应该在哪里编写itDump access—它不适用于托管的web环境。改用SQLCE4,因为我看到了它的用途。但是所有VS-sayes都不能用在字符串中,而且都是read,这意味着什么?什么不能用在字符串中?所有读取的内容?我试图更改con.ConnectionString=@“Provider=Microsoft.ACE.OLEDB.12.0;数据源=“+Server.MapPath”(“~\\App\u Data\\WebSiteDatabase.accdb”);“PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=“&Server.MapPath”(“App\u DATA\WebSiteDatabase.accdb”)并在教程后显示errorsTry。并删除密码,直到它正常工作,然后在确定可以连接后添加密码。欢迎加入2k俱乐部。恭喜你,我看到了。但是所有VS-sayes都不能用在字符串中,而且都是read,这意味着什么?什么不能用在字符串中?所有读取的内容?我试图更改con.ConnectionString=@“Provider=Microsoft.ACE.OLEDB.12.0;数据源=“+Server.MapPath”(“~\\App\u Data\\WebSiteDatabase.accdb”);“PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=“&Server.MapPath”(“App\u DATA\WebSiteDatabase.accdb”)并在教程后显示errorsTry。并删除密码,直到它正常工作,然后在确定可以连接后添加密码。欢迎加入2k俱乐部。祝贺