2014-08-27 31 views
1

訪問數據庫,我使用的MS Access數據庫的2013名是 「通訊」,密碼爲 「某某@ 12345」連接使用C#Web.config文件

Web.config中的連接字符串:

<add name="commconn" connectionString="Provider=Microsoft.ACE.OLEDB.12.0; Data Source=E:/ee/comm.accdb; Jet OLEDB:Database [email protected];" /> 

當我運行我的網站時,它只給出一個錯誤,我的DropDownList綁定數據和錯誤是 「不是有效的密碼。」

我使用此代碼綁定我的DropDownList:

<asp:DropDownList ID="DropDownList1" runat="server" DataSourceID="AccessDataSource1" DataTextField="share_amt" DataValueField="ID"> 
</asp:DropDownList> 
<asp:AccessDataSource ID="AccessDataSource1" runat="server" DataFile="~/comm.accdb" SelectCommand="SELECT * FROM [share_amt] ORDER BY [ID]"> 
</asp:AccessDataSource> 

我使用的MS Access 2013數據庫和ASP.Net與C#。

回答

3

看來,你的問題的癥結是:

  1. 在web.config中你已經創建了一個名爲「comm.accdb」受密碼保護的Access數據庫名爲commconn數據連接,但
  2. 您已嘗試使用AccessDataSource來填充DropDownList,並且該AccessDataSource通過DataFile=參數直接引用Access數據庫;數據連接與commconn無關。

此外,MSDN文章

Retrieving Data Using the AccessDataSource Web Server Control

說:

的的AccessDataSource不會連接到Access數據庫受密碼保護的;要從受密碼保護的Access數據庫中檢索數據,請使用SqlDataSource控件。

所以,在您的App_Data文件夾命名爲「comm.accdb」受密碼保護的Access數據庫就需要在Web.config中一個<connectionStrings>條目是這樣的:

<add name="commConnectionString" 
    connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\comm.accdb;Jet OLEDB:Database [email protected]" 
    providerName="System.Data.OleDb" /> 

的東西一起像.aspx頁面上的這樣:

<asp:SqlDataSource 
    ID="SqlDataSource1" runat="server" 
    ConnectionString="<%$ ConnectionStrings:commConnectionString %>" 
    ProviderName="<%$ ConnectionStrings:commConnectionString.ProviderName %>" 
    SelectCommand="SELECT * FROM [share_amt] ORDER BY [ID]"> 
</asp:SqlDataSource> 
<asp:DropDownList ID="DropDownList1" runat="server" 
    DataSourceID="SqlDataSource1" DataTextField="share_amt" DataValueField="ID"> 
</asp:DropDownList>