Comment puis-je exécuter un fichier .sql à partir de C #?

Pour certains tests d'intégration je veux me connecter à la base de données et exécuter une .fichier sql qui a le schéma nécessaires pour les tests de réellement exécuter, y compris les GO instructions. Comment puis-je exécuter l' .fichier sql? (ou est-ce totalement le mauvais chemin à suivre?)

J'ai trouvé un post dans le forum MSDN montrant ce code:

using System.Data.SqlClient;
using System.IO;
using Microsoft.SqlServer.Management.Common;
using Microsoft.SqlServer.Management.Smo;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string sqlConnectionString = "Data Source=(local);Initial Catalog=AdventureWorks;Integrated Security=True";
            FileInfo file = new FileInfo("C:\\myscript.sql");
            string script = file.OpenText().ReadToEnd();
            SqlConnection conn = new SqlConnection(sqlConnectionString);
            Server server = new Server(new ServerConnection(conn));
            server.ConnectionContext.ExecuteNonQuery(script);
        }
    }
}

mais sur la dernière ligne, j'obtiens cette erreur:

Système.De la réflexion.TargetInvocationException:
Une Exception a été levée par le
cible d'un appel. --->
Système.TypeInitializationException:
L'initialiseur de type pour"
a déclenché une exception. --->
.ModuleLoadException:
Le module C++ pas réussi à charger au cours de
domaine d'application de l'initialisation. --->
Système.DllNotFoundException: Impossible de
charger la DLL 'MSVCR80.dll': Le spécifié
le module n'a pas pu être trouvé. (À l'Exception de
de HRESULT: 0x8007007E).

M'a dit d'aller et de télécharger cette DLL à partir de quelque part, mais ça a l'air très hacky. Est-il le moyen le plus propre? Est-il une autre façon de le faire? Ce que je fais mal?

Je fais cela avec Visual Studio 2008, SQL Server 2008 .Net 3.5SP1 et C# 3.0.

source d'informationauteur pupeno