用于访问2007的连接字符串

时间:2011-07-09 10:43:45

标签: asp.net ado.net

我使用此代码连接到访问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();
        }

    }

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

3 个答案:

答案 0 :(得分: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);

回复是否有用

答案 1 :(得分:0)

  

我可以看到conn的数据库属性为空“”这会是什么问题

不,这是预料之中的。如果您在具有多个数据库的RDMS上使用OleDbConnection,那么它将具有一个值。

例如SQL Server,Sybase,MySQL基本上任何具有类似

连接的东西

Provider = ; Server = ; Database = ;

答案 2 :(得分:0)

嗯,我不太确定这是否有用.......但是你可以试试这个。检查.aspx页面中AutoEventWireUp的值。如果设置为“false”....将其设置为“true”。