티스토리 뷰
DAAB(Data Access Application Block) in Enterprise Library 2.0 - (3회)
네오블루 2008. 5. 15. 23:17DAAB(Data Access Application Block) in Enterprise Library 2.0 - (3회) |
| ||||||||||||||||||
[Database Object생성하기] [위구성정보설정과관련DLL참조추가,네임스페이스using추가후에해야할작업은DatabaseFactory클래스를통해사용할Database오브젝트를생성하는것이다. 이러한Database오브젝트는위에서설정한구성정보를바탕으로Database에Specific한Database오브젝트가생성된다. Database오브젝트를생성하기위해서는DatabaseFactory클래스의CreateDatabase메서드를호출하면되는데이메서드의인자로구성파일내에있는Database Instance명을넘기면된다. 아무런인스턴스명도인자로넘기지않을경우에는구성정보파일내에Default Instance로설정된정보가Database오브젝트생성시에이용된다. 아래코드가Default Database Instance를이용해서Database Object를생성하는코드이다.(C#) Database db = DatabaseFactory.CreateDatabase(); Default Database Instance가아니라위구성정보파일내의Northwind와같이Named Instance정보를이용해서Database Object를생성하기위해서는아래와같이코딩하면된다. Database db = DatabaseFactory.CreateDatabase("Northwind"); 혹은연결하고자하는DB의연결정보를알고있는경우DatabaseFactory클래스를사용하지않고추상클래스인Database의각DB별구체적인클래스를사용해서Database오브젝트를생성한다.이경우DB연결에대한정보는구성정보파일을사용하지않고해당DB의Database오브젝트생성시인자로넘겨준다. 아래코드는DB연결문자열을이용해서SqlDatabase오브젝트를생성하는코드이다. string myConnectionString = GetConnectionString(); SqlDatabase sqlDatabase = new SqlDatabase(myConnectionString);
[DAAB오버로드의종류]
[DAAB사용법2(간단한DAAB사용예)] [InlineSQL or Stored Procedure실행하기]
Dim db As Database = DatabaseFactory.CreateDatabase(); or Dim salesDb As Database = DatabaseFactory.CreateDatabase(“sales”);
productDataSet = db.ExecuteDataSet(CommandType.Text, “SELECT ProductID, ProductName FROM Products”); 이경우사용하는DB와DB연결문자열을정확히알고있다면구성파일을사용하지않고아래와같이바로해당하는DB객체를생성할수있다. SqlDatabase sqlDatabase = new SqlDatabase(myConnectionString); GenericDatabase db = new GenericDatabase(connectionString, OdbcFactory.Instance);
Enterprise Library 1.x에서는각DB별Database-derived클래스가필요했었다.새로운버전인Enterprise Library 2.0에서는GenericDatabase 클래스가생겼는데GenericDatabase는어떤.NET Managed Provider와도사용될수있다.
[간단한DAAB사용예1] Northwind데이터베이스에서CustomerID로주문정보untyped dataset을가져오는예제는아래와같다.
public DataSet GetOrdersByCustomerID(string customerID) { Database northwind = DatabaseFactory.CreateDatabase();
DbCommand command = northwind.GetSqlStringCommand ("SELECT [OrderID],[OrderDate] FROM [Orders] WHERE [CustomerID] = @CustomerID");
northwind.AddInParameter(command, "@CustomerID", DbType.String, customerID);
DataSet orders = new DataSet();
northwind.LoadDataSet(command, orders, "orders");
return orders; }
[간단한DAAB사용예2(Static Factories)] Northwind데이터베이스에서CustomerID로주문정보untyped dataset을가져오는예제는아래와같다.
Static Factories를 이용한 방법은 Enterprise Library 1.x에서 사용하던 방법이다. Database northwind = DatabaseFactory.CreateDatabase(); Database northwind = DatabaseFactory.CreateDatabase("Northwind");
Web.config나 App.Config에 설정 정보를 이용하여 적절한 Database 클래스를 만든다.
<configuration> <configSections> <section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary. Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data" /> configSections> <connectionStrings> <add name="Northwind" providerName="System.Data.SqlClient" connectionString="Data Source=(local); Initial Catalog=Northwind; Integrated Security=True" /> connectionStrings> <dataConfiguration defaultDatabase="Northwind"/> configuration>
[간단한DAAB사용예3(Instance Provider Factories)] IConfigurationSource source = new SystemConfigurationSource(); DatabaseProviderFactory factory = new DatabaseProviderFactory(source); Database northwind = factory.Create("Northwind");
[간단한DAAB사용예4(SqlDatabase Object Directly)] 아래코드는DB연결문자열을이용해서SqlDatabase오브젝트를생성하는코드이다. SqlDatabase northwind = new SqlDatabase (ConfigurationManager.ConnectionStrings["Northwind"].ConnectionString);
|
출처 : http://www.gosu.net
- Total
- Today
- Yesterday
- 나를 기억하고 있는 너에게
- 모토스톰2
- 아이폰 카메라어플
- GTO SHONAN 14DAYS
- IT·컴퓨터
- hot 6
- 아이폰 셀카
- .NET Excel
- 닷넷 엑셀
- KL2200
- 보이스티
- 삼성 외장하드
- 아이팟 보조배터리
- KL-2200
- 릴리스 다이어리 - 설레어
- 릴리스다이어리
- 러브트리프로젝트
- Roibosh Vanilla
- God of War III
- Crows Zero
- 윈터드림
- 아이튠즈 없이 mp3가져오기
- 아이폰 보조배터리
- 닷넷 파일형식
- georgia max
- 안녕 바다
- 로네펠트
- 보이스차
- Lily's Diary
- 켄우드 정수기
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |