我正在使用以下代码来设置连接字符串:
ConfigurationSourceBuilder builder = new ConfigurationSourceBuilder ();
builder.ConfigureData ()
.ForDatabaseNamed ( "TestDatabase" )
.ThatIs.ASqlDatabase ()
.WithConnectionString ( "Data Source=127.0.0.1;User Id=sa;Password=123;Initial Catalog=DataAccessExamples;" )
.AsDefault ();
var configSource = new DictionaryConfigurationSource ();
builder.UpdateConfigurationWithReplace ( configSource );
EnterpriseLibraryContainer.Current
= EnterpriseLibraryContainer.CreateDefaultContainer ( configSource );
执行上面的代码后,我希望以下代码可以正常工作,但是它表示连接未初始化,而且command.Connection属性始终保持为null。
Database database = DatabaseFactory.CreateDatabase ();
DbCommand command = database.GetSqlStringCommand ( "Select * from TT" );
DbDataReader dbReader = command.ExecuteReader ( System.Data.CommandBehavior.CloseConnection );
while (dbReader.Read ())
{
System.Diagnostics.Debug.WriteLine ( dbReader[0].ToString () );
}
任何人都可以告诉我为什么连接没有初始化?
我在库项目中使用上面的代码,并希望在运行时配置DAAB。
由于
答案 0 :(得分:0)
首先,为什么要对连接字符串进行硬编码?在您的应用程序的配置文件中使用连接字符串会不会更有意义吗?
为什么需要使用数据库工厂?
SqlDatabase db = new SqlDatabase("some connection string from the config");
DbCommand cmd = db.GetSqlStringCommand(sqlStatement);
IDataReader reader = db.ExecuteReader(cmd);