2013-05-14 90 views
0

我有一个托管的网站,我需要添加一个数据库密码和登录信息。 (MS Access数据库),我尝试了很多,但无法连接它(在本地机器上工作)。我试图改变连接字符串,但它仍然不起作用。数据库位于文件夹App_Data中。以下是我输入的内容Login.aspx页面:在asp.net c#(托管网站)连接数据库(MS Access)

OleDbConnection con = new OleDbConnection(); 
con.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" 
    + Server.MapPath("~\\App_Data\\WebSiteDatabase.accdb"); 
con.Open(); 

这不起作用。我需要改变什么?我已将我的网站放在somee.com上

+0

你为什么不使用包括SQL Express数据库? – Jake1164 2013-05-14 13:14:26

+0

这是教育的任务.... – user2362291 2013-05-14 13:15:31

+0

服务器上安装了“程序”Access吗?此外,每当我看到有人在网站上使用Access时,我都会畏缩。请不要这样做。 – 2013-05-14 13:15:43

回答

1

您是否检查了SOMEE​​上的连接到访问数据库的帮助页面?

引用自Somee.com帮助:

连接到MS Access数据库全光照DSN-less连接
多卡仅 提供对Access数据库DSN-less连接,因为他们是 速度更快,有是不可能的名称冲突。大部分 问题都在选择正确的连接字符串。下面是一个例子测试连接字符串以MS Access数据库的 :
我们假设你的数据库驻留在“数据库”子文件夹,它的名字是“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(); 
} 
+0

我看到了这一点。但一切VS说,&不能在字符串中使用,全部被读 – user2362291 2013-05-14 13:20:29

+0

这是什么意思?什么不能用在一个字符串?所有阅读内容? – Jake1164 2013-05-14 13:23:10

+0

我试图更改con.ConnectionString = @“Provider = Microsoft.ACE.OLEDB.12.0; Data Source =” + Server.MapPath(“〜\\ App_Data \\ WebSiteDatabase.accdb”); 到“PROVIDER = MICROSOFT.JET.OLEDB.4.0; DATA SOURCE =”&Server.MapPath(“App_Data \ WebSiteDatabase.accdb”) 它显示错误 – user2362291 2013-05-14 13:25:14