我使用此代码连接到访问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的数据库属性为空“”这会是什么问题?
答案 0 :(得分:1)
<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”。