2013-05-14 91 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