示例#1
0
        public static void RunEmbeddedScript(string path, IDbCommand cmd, bool executeStatementOneByOne = true)
        {
            using (SQLScriptParser parser = new SQLScriptParser())
            {
                parser.LoadScriptEx(path);

                if (executeStatementOneByOne)
                {
                    string cmdText = parser.NextCommand();
                    while (!string.IsNullOrEmpty(cmdText))
                    {
                        cmd.CommandText = cmdText;
                        try
                        {
                            cmd.ExecuteNonQuery();
                        }
                        catch (Exception)
                        {
                        }
                        cmdText = parser.NextCommand();
                    }
                }
                else
                {
                    StringBuilder sb      = new StringBuilder();
                    string        cmdText = parser.NextCommand();
                    while (!string.IsNullOrEmpty(cmdText))
                    {
                        sb.AppendFormat("{0};", cmdText);
                        cmdText = parser.NextCommand();
                    }

                    try
                    {
                        if (sb.Length > 0)
                        {
                            cmd.CommandText = sb.ToString();
                            cmd.ExecuteNonQuery();
                        }
                    }
                    catch (Exception)
                    {
                    }
                }
            }
        }