连接字符串以访问2007年的数据库

3

我正在使用以下代码连接到Access 2007数据库:

   public void RetrieveData(){

        OleDbConnection conn=null;
        OleDbDataReader reader=null;
   string strConnection= @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Users\\PC\\Documents\\School.accdb;Persist Security Info=False;"; 

        try
        {
            conn = new OleDbConnection(strConnection);
            conn.Open();
            OleDbCommand cmd = new OleDbCommand("select * from Class", conn);
            reader = cmd.ExecuteReader();
            DataList1.DataSource = reader;
            DataList1.DataBind();
        }
        catch (Exception e)
        {
            Response.Write(e.Message);
            Response.End();

        }
        finally
        {
            if (reader != null) reader.Close();
            if (conn != null) conn.Close();
        }

    }

但是当我运行它时,它只会给出一个空白页面。在调试模式下,我可以看到 conn 的数据库属性为空 "",这可能是什么问题?


你需要双斜杠吗?因为你在开头有@,它可能会错误地读取目录。虽然在调试模式下似乎仍会出现,但我想确认一下。 - Precious Roy
你在运行网站时关闭了MS Access吗?可能是权限问题。 - Nitin Sawant
3个回答

1

在 web.config 文件中

<connectionStrings>
    <!-- connection string declared for connecting the web application with MS Access 2007 -->
    <!-- connection string for MS Access 2007 accdb file -->
    <add name="AccessConnectionString" connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|db1.accdb;Persist Security Info=False;Jet OLEDB:Database Password=;" providerName="System.Data.OleDb" />
</connectionStrings>

然后从代码后台使用这个

import namespaces
using system.data.oledb;

// to access the connection string stored in the web.config file.
OleDbConnection myDataConnection = new OleDbConnection(ConfigurationManager.ConnectionStrings["AccessConnectionString"].ConnectionString);

请回复是否有用


我已经为您处理了,但是您可以通过选择代码然后按下“{}”按钮来格式化您的代码。 - Conrad Frix

0

我不太确定这个方法是否有效......但你可以尝试一下。检查.aspx页面中AutoEventWireUp的值。如果它被设置为“false”......将其设置为“true”。


0
我看到conn的数据库属性是空的"",这会有什么问题吗?
不,这是预期的。如果您在具有多个服务器数据库的RDMS上使用了OleDbConnection,那么它将具有一个值。
例如SQL Server、Sybase、MySQL基本上任何具有类似连接的东西 Provider=; Server=; Database=;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接