0

我正在尝试将我的 MS Access Db 与我的 asp.net 网站连接起来。当我运行我的代码(仅在本地主机上)时,它不会显示任何错误或异常,但它只是等待服务器响应。我正在关注代码:

 string connection = "Provider =Microsoft.ACE.OLEDB.12.0; datasource=I:/Adittya/test.accdb";

        string query = "select * from test";
        OleDbConnection con = new OleDbConnection(connection);
        OleDbCommand cmd = new OleDbCommand();
        cmd.CommandText = query;
        cmd.CommandType = CommandType.Text;
        OleDbDataReader dr = cmd.ExecuteReader();
        DataTable dt = new DataTable();
        dt.Load(dr);

        testGrid.DataSource = dt;
        testGrid.DataBind();

我的数据库的另一件事是在我的笔式驱动器中,其位置是静态的。

我的代码是否有问题,或者我们无法连接到笔式驱动器中的数据库。

4

3 回答 3

4

您的代码中有问题,您没有设置与命令对象的连接,也没有打开连接。下面的代码对我有用。试试这个

    string connection = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\\Test1.accdb";

    string query = "select * from [Table]";
    OleDbConnection con = new OleDbConnection(connection);
    OleDbCommand cmd = new OleDbCommand();     
    cmd.CommandText = query;
    cmd.CommandType = CommandType.Text;
    cmd.Connection = con;
    con.Open();
    OleDbDataReader dr = cmd.ExecuteReader();
    DataTable dt = new DataTable();
    dt.Load(dr);
    con.Close();
    testGrid.DataSource = dt;
    testGrid.DataBind();

或使用 SqlDataSource 尝试此解决方案

示例:我创建了一个测试 Acess 数据库,并且我使用了 Sql 数据源,它工作正常。试试这个解决方案

<connectionStrings>       
    <add name="ConnectionString" connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\Test1.accdb"
        providerName="System.Data.OleDb" />
  </connectionStrings>
 <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$     ConnectionStrings:ConnectionString %>" ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>" SelectCommand="SELECT * FROM [Table]"></asp:SqlDataSource>
 <asp:GridView ID="GridView1" DataSourceID="SqlDataSource1" runat="server"></asp:GridView>

它对我来说很好。

于 2012-07-07T05:21:55.640 回答
1

试试你的数据源

datasource=I:\\Adittya\\test.accdb
于 2012-07-07T05:15:11.533 回答
0

用这个

"Provider=Microsoft.Jet.OLEDB.4.0; " + 
     "Data Source=" + Server.MapPath("Database/TestDB.mdb"))
于 2018-07-14T06:35:35.270 回答