SqlCommand() la méthode ExecuteNonQuery() tronque le texte de la commande

Je suis en train de construire une coutume db utilitaire de déploiement, j'ai besoin de lire des fichiers texte contenant des scripts sql et de les exécuter sur la base de données.

Assez facile de trucs, c'est très bien.

Cependant j'ai rencontré un problème, le contenu du fichier sont lues correctement et entièrement, mais une fois passé dans le SqlCommand, puis exécuté avec SqlCommand.ExecuteNonQuery seulement une partie du script est exécuté.

J'ai tiré jusqu'Profiler et a confirmé que mon code n'est pas en passant toutes les du script.

    private void ExecuteScript(string cmd, SqlConnection sqlConn, SqlTransaction trans)
    {

        SqlCommand sqlCmd = new SqlCommand(cmd, sqlConn, trans);
        sqlCmd.CommandType = CommandType.Text;
        sqlCmd.CommandTimeout = 9000000; //for testing
        sqlCmd.ExecuteNonQuery();

    }

    //I call it like this, readDMLScript contains 543 lines of T-SQL
    string readDMLScript = ReadFile(dmlFile);
    ExecuteScript(readDMLScript, sqlConn, trans);
Ce personnage est le script tronquée?
comment le ReadFile méthode de travail? Êtes-vous à 200% que c'est de ne pas sauter les quelques caractères, peut-être?? Pourquoi ne pas simplement utiliser System.IO.File.ReadAllText(filename) ??
comment bien texte en êtes-vous de lire à partir du fichier, en octets?
Merci pour l'aide de Marc, j'ai été en utilisant un lecteur de Flux. Je vais passer à Système.IO.Fichier.ReadAllText(nom de fichier) pour des raisons de clarté. Maintenant, sur la question, je me doutais bien que le script a été foiré parce que lors de l'exécution à l'aide de la SqlCommand exceptions relatives à la syntaxe du script ont été soulever alors qu'il fonctionnait bien dans Sql Management Studio. Il semble que j'ai eu quelques traumatismes à la tête ce matin, il s'avère que le script n'est pas tronqué.
Les exceptions sont toujours en me tenant le dos. Savez-vous pourquoi quelque chose comme ceci :.Les données.SqlClient.SqlException: syntaxe Incorrecte près de 'GO'. Syntaxe incorrecte près de 'GO'. Syntaxe incorrecte près de 'GO'. Pour être visible sous la SqlCommand, mais pas sous Sql Management Studio lors de l'exécution d'un script?

OriginalL'auteur H. Abraham Chavez | 2010-03-16