コード例 #1
0
        public void RunSqlScript(FileInfo fileWithSqlScript, params Func <string, string>[] lineFilters)
        {
            ArgumentValidator.ThrowIfDoesNotExist(fileWithSqlScript, "fileWithSqlScript");

            using (var sr = fileWithSqlScript.OpenText())
            {
                var sb = new StringBuilder(512);
                while (!sr.EndOfStream)
                {
                    var nextLine = sr.ReadLine();

                    for (var i = 0; i < lineFilters.Length; i++)
                    {
                        nextLine = lineFilters[i](nextLine);
                    }

                    if (rgxGo.IsMatch(nextLine))
                    {
                        if (0 < sb.Length)
                        {
                            ExecuteNonQuery(sb.ToString());
                        }

                        sb.Length = 0;
                    }
                    else
                    {
                        sb.AppendLine(nextLine);
                    }
                }
                if (0 < sb.Length)
                {
                    ExecuteNonQuery(sb.ToString());
                }
            }
        }