2011-03-18 2 views
0

J'ai une méthode par laquelle je crée un tableau dans le DB comme indiqué ci-dessous,Créer une table à l'aide Enterprise Library

public void CreateTable(List<string> columnNames, string tableName) 
{ 
    string connectionString = Utility.ReadDataFromConfig("ConnectionTest"); 

    using (var connection = new SqlConnection(connectionString)) 
    { 
    var server = new Server(new ServerConnection(connection)); 
    var db = server.Databases["GlassLookUp"]; 
    var newTable = new Table(db, tableName); 
    var idColumn = new Column(newTable, "ID") { DataType = DataType.Int, Nullable = false }; 
    newTable.Columns.Add(idColumn); 
    foreach (var titleColumn in from temp in columnNames 
        where temp != string.Empty 
        select new Column(newTable, temp) { DataType = DataType.VarChar(500), Nullable = true }) 
    { 
     newTable.Columns.Add(titleColumn); 
    } 
    newTable.Create(); 
    } 
} 

Je voulais que la méthode ci-dessus à modifier, de sorte que la bibliothèque Enterprise est utilisée. J'ai déjà utilisé la bibliothèque Enterprise pour exécuter des procédures stockées, mais je ne sais pas comment utiliser la bibliothèque Enterprise pour créer une table.

Merci

Répondre

1

Il semble que votre code utilise SQL Server Management Objects (SMO). Je ne pense pas que vous puissiez utiliser SMO de manière utile avec le bloc d'application d'accès aux données de bibliothèque d'entreprise. Le mieux que vous pourriez faire serait d'obtenir la connexion:

public void CreateTable(List<string> columnNames, string tableName) 
{ 
    Database database = DatabaseFactory.CreateDatabase("ConnectionTest"); 
    string connectionString = database.ConnectionString; 

    //... 
    newTable.Create(); 
} 

Mais cela n'ajoute pas beaucoup de valeur. :)

Questions connexes