2010-12-16 6 views
4

Es sieht aus, dass die alte SqlHelper Klasse von der Microsoft Enterprise Library hat mich vor allem durch die Datenbank-Klasse ersetzt, die 5. in der neuen Enterprise Library Version enthalten istErsatz für Microsoft Data Access ApplicationBlocks obsolet SqlHelper Klasse

Ich habe ein sehr einfaches und triviales Beispiel:

using Microsoft.ApplicationBlocks.Data; 

private void PopulateCheckBoxGroup() 
{ 
    const string strConnTxt = "Server=(local);Database=DataBindTests;Integrated Security=True;"; 
    const string strlSql = "select Technology from PreferredTechnology where ParentId = 1"; 
    CheckBoxList1.DataSource = SqlHelper.ExecuteReader(strConnTxt, CommandType.Text, strlSql); 
    CheckBoxList1.DataTextField = "Technology"; 
    CheckBoxList1.DataBind(); 

} 

können Sie mir nur einen Wink geben, um das gleiche mit der neuen Datenbank abstrakte Klasse zu tun, die die SQLHelper ersetzt? Ich habe in die Enterprise Library 5 "Hands On Labs" geschaut und es gibt keine Erwähnung darüber.

danke im voraus.

Antwort

3

Es ist so ziemlich das gleiche, ändert sich nur in seiner Konstruktion, z.B .:

var database = new SqlDatabase("<connection>"); 
using (var reader = database.ExecuteReader(...)) 
{ 

} 
+0

Thank you very much. Ich habe deine Antwort markiert. – Erica

+0

@Erica: Die 'SqlDatabase' hat direkt keinen wirklichen Vorteil gegenüber der' SqlHelper' Klasse. Die Klasse "Database" wird als Abstraktion über Datenbankservern verwendet, um Ihre Datenschicht einfach austauschen zu können. Wenn Sie jedoch direkte Abfragen anstelle von gespeicherten Prozeduren verwenden, um mit der Datenbank zu kommunizieren, können Sie Ihre Datenschicht nicht austauschen, da jede Datenbank ihren eigenen Dialekt hat. – Steven