Я создаю пользовательскую утилиту развертывания базы данных, мне нужно читать текстовые файлы, содержащие сценарии sql, и выполнять их в базе данных.
Довольно простая штука, пока все хорошо.
Однако я столкнулся с проблемой: содержимое файла читается успешно и полностью, но после передачи в SqlCommand и последующего выполнения с помощью SqlCommand.ExecuteNonQuery выполняется только часть скрипта.
Я запустил Profiler и убедился, что мой код не проходит весь сценарий.
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);
ReadFile
? Вы на 200% уверены, что это не пропуск нескольких символов, может быть?? Почему бы просто не использоватьSystem.IO.File.ReadAllText(filename)
?? - person marc_s   schedule 16.03.2010