Ejemplo n.º 1
0
    /// <summary>
    /// Valida e cria os parâmetros no FBCommand.
    /// </summary>
    /// <param name="cmd"></param>
    /// <param name="sql"></param>
    /// <param name="paramss"></param>
    public static void CriarParametros(this FbCommand cmd, string sql, Dictionary <string, object> paramss)
    {
        List <string> parametrosSQL      = new List <string>();
        List <string> parametrosPassados = new List <string>();
        StringBuilder sb = new StringBuilder();

        string[] arr = null;

        if (sql.IndexOf('@') > -1)
        {
            sql = sql.Substring(sql.IndexOf('@') + 1);
            arr = sql.Split('@');
        }

        //Parametros do SQL
        foreach (string a in arr)
        {
            int idx = 0;
            if (a.IndexOf(',') > -1)
            {
                idx = a.IndexOf(',');
            }
            else if (a.IndexOf(')') > -1)
            {
                idx = a.IndexOf(')');
            }
            else
            {
                idx = a.IndexOf(';');
            }

            string parameter = a.Substring(0, idx).Trim();
            parametrosSQL.Add(parameter.ToUpper());
        }

        //Parametros Passados
        foreach (KeyValuePair <string, object> kv in paramss)
        {
            parametrosPassados.Add(kv.Key.ToUpper());
        }

        List <string> list1 = parametrosPassados.Except(parametrosSQL).ToList();
        List <string> list2 = parametrosSQL.Except(parametrosPassados).ToList();

        //Após validar coloca os parâmetros
        foreach (KeyValuePair <string, object> kv in paramss)
        {
            cmd.AdicionarParametro(kv.Key, kv.Value);
        }
    }