因为使用access时,access文件地址不能固定,所以必须写成动态变化的,那么就不能通过配置文件实现,同时,连接参数也和其他类型数据库不一样,使用时注意以下方法配置连接参数:
方法一:
conn = New esConnectionElement()
conn.Name = AccessConnectionName
conn.ProviderMetadataKey = "esDefault"
conn.SqlAccessType = esSqlAccessType.DynamicSQL
conn.Provider = "EntitySpaces.MSAccessProvider"
conn.ProviderClass = "DataProvider"
Dim sourceAccessDatabase As String
sourceAccessDatabase = Path.Combine(mOperatingDirectory, "db.mdb")
Dim userInfo As String
userInfo = "User Id=username;Password=password"
conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Locking Mode=1;Data Source=" & sourceAccessDatabase & ";Jet OLEDB:System database=" & Path.Combine(mOperatingDirectory, "ibs.mdw") & ";" & userInfo
esConfigSettings.ConnectionInfo.Connections.Add(conn)
方法二:
databaseVersion applies to SQL Server only. For other DBs it is ignored.对于access只需要修改连接字符串就可以了:
MS Access 2007:
connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\myFolder\MyDatabase.accdb;"
Other versions going back to Access 2000:
connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\myFolder\MyDatabase.mdb;"
实际使用过的方法和方法一类似,其他方法未使用过:
// --- Manually register a connection
esConnectionElement conn = new esConnectionElement();
conn.Name = "SqlCe";
conn.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Password=;User ID=Admin;Data Source=" + Application.StartupPath.Trim() + @"\DB.mdb;Persist Security Info=True";
conn.Provider = "EntitySpaces.MSAccessProvider";
conn.ProviderClass = "DataProvider";
conn.SqlAccessType = esSqlAccessType.DynamicSQL;
conn.ProviderMetadataKey = "esDefault";
conn.DatabaseVersion = "2005";
// --- Assign the Default Connection ---
esConfigSettings.ConnectionInfo.Connections.Add(conn);
esConfigSettings.ConnectionInfo.Default = "SqlCe";