Exemplo n.º 1
0
        private void btnLerBanco_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < lstTabelas.Items.Count; i++)
            {
                lstTabelas.Items.RemoveAt(i);
            }

            if ((txtServidor.Text.Trim() != "") || (txtBanco.Text.Trim() != ""))
            {
                // Monta a string de conexão
                //Data Source=ELNBSBSRV12;Initial Catalog=Eletronorte;User ID=elnweb; Password=elnweb;
                strConnstring = new StringBuilder();
                strConnstring.Append("Data Source=" + txtServidor.Text.Replace("'", "") + ";");
                strConnstring.Append("Initial Catalog=" + txtBanco.Text.Replace("'", "") + ";");

                if ((ckAutentica.Checked == false) && (txtUsuario.Text.Trim() != ""))
                {
                    strConnstring.Append("User ID=" + txtUsuario.Text.Replace("'", "") + ";");
                    strConnstring.Append("Password="******"'", "") + ";");
                }
                else
                {
                    // Usar autenticação segura
                    strConnstring.Append("Integrated Security=True;");
                }

                // Conecta com o banco
                try
                {
                    objBanco = new Banco.Banco(strConnstring.ToString());

                    try
                    {
                        // Ler as tabelas
                        dr = objBanco.QueryConsulta("SELECT * FROM SYSOBJECTS WHERE TYPE = 'U' ORDER BY NAME");
                        while (dr.Read())
                        {
                            lstTabelas.Items.Add(dr["NAME"].ToString());
                        }
                    }
                    catch (SqlException)
                    {
                        MessageBox.Show("Erro ao ler o banco de dados.");
                    }
                    catch (Exception)
                    {
                        MessageBox.Show("Erro encontrado.");
                    }
                }
                catch (SqlException sqlerr)
                {
                    MessageBox.Show(sqlerr.ToString());
                }
                finally
                {
                    lblConnstring.Text = strConnstring.ToString();
                }
            }
            else
            {
                MessageBox.Show("Informe a string de conexão com o banco.");
            }
        }
        // Metodos
        public StringBuilder GeraCodigoDto(string _tabela, string _conexao, string _banco)
        {
            string strTabela = _tabela;

            objCodigo = new StringBuilder();

            objCodigo.AppendLine("using System;");
            objCodigo.AppendLine("using System.Collections.Generic;");
            objCodigo.AppendLine("using System.ComponentModel.DataAnnotations;");
            objCodigo.AppendLine("using System.Text;");
            objCodigo.AppendLine();
            objCodigo.AppendLine("namespace DTO");
            objCodigo.AppendLine("{");

            string tabelaFormatada = strTabela.Replace("_", "").Replace("-", "");

            // Abre conexão com o banco
            objBanco = new Banco.Banco(_conexao);
            // Cria o objeto da classe Library
            objLib = new Library.Library();

            //objCodigo.AppendLine();
            objCodigo.AppendLine(tb + "/// <summary>");
            objCodigo.AppendLine(tb + "/// Classe DTO gerada automática: Tab" + strTabela);
            if (Environment.MachineName == "MARQUESNOTE-PC")
            {
                objCodigo.AppendLine(tb + "/// Criador: Marques Silva Fonseca");
            }
            else
            {
                objCodigo.AppendLine(tb + "/// Criador: " + Environment.UserName);
            }
            objCodigo.AppendLine(tb + "/// Criada em " + strData);
            //objCodigo.AppendLine(tb + "/// Contato: [email protected]");
            objCodigo.AppendLine(tb + "/// </summary>");
            objCodigo.AppendLine(tb + "public class Tab" + tabelaFormatada);
            objCodigo.AppendLine(tb + "{");
            objCodigo.AppendLine(tb + tb + "// Atributos");

            // Faz a leitura de todas as colunas da tabela
            objDr = objBanco.QueryConsulta("SELECT * FROM " + strTabela);
            // Conta o número de colunas
            int nunrec = objDr.FieldCount;

            for (int i = 0; i < nunrec; i++)
            {
                #region modelo1
                var ColunaIsNullable = objBanco.RetornaValor("IF(EXISTS(SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '" + strTabela + "' AND COLUMN_NAME = '" + objDr.GetName(i) + "' AND IS_NULLABLE = 'YES')) SELECT 1 IsNullable ELSE SELECT 0 IsNullable", new System.Collections.ArrayList()
                {
                }, new System.Collections.ArrayList {
                });
                string tipoObjeto = objLib.DefineTipo(objDr.GetDataTypeName(i).ToString());
                // o campo aceita nullo
                if (Convert.ToBoolean(ColunaIsNullable) && tipoObjeto == "DateTime")
                {
                    objCodigo.AppendLine(tb + tb + "private " + tipoObjeto + "?" + " _" + objDr.GetName(i) + ";");
                }
                // o campo aceita nullo
                else
                {
                    objCodigo.AppendLine(tb + tb + "private " + objLib.DefineTipo(objDr.GetDataTypeName(i).ToString()) + " _" + objDr.GetName(i) + ";");
                }
                #endregion
            }

            objCodigo.AppendLine();
            objCodigo.AppendLine(tb + tb + "// Propriedades");

            for (int i = 0; i < nunrec; i++)
            {
                #region modelo1
                objCodigo.AppendLine(tb + tb + "#region " + objDr.GetName(i) + "");

                var ColunaIsNullable = objBanco.RetornaValor("IF(EXISTS(SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '" + strTabela + "' AND COLUMN_NAME = '" + objDr.GetName(i) + "' AND IS_NULLABLE = 'YES')) SELECT 1 IsNullable ELSE SELECT 0 IsNullable", new System.Collections.ArrayList()
                {
                }, new System.Collections.ArrayList {
                });
                string tipoObjeto = objLib.DefineTipo(objDr.GetDataTypeName(i).ToString());
                // o campo aceita nullo
                if (Convert.ToBoolean(ColunaIsNullable))
                {
                    //objCodigo.AppendLine(tb + tb + "[Atributos(ChavePrimaria = false, DescricaoCampo = \"\", ChaveEstrangeira = false, ClasseChaveEstrangeira = \"\", DescricaoExibirChaveEstrangeira = \"\", RelacionarChaveEstrangeiraNovoCadastro = true)]");
                    objCodigo.AppendLine(tb + tb + "//[Required(ErrorMessage = \"Informe o campo " + objDr.GetName(i) + "\")]");
                    objCodigo.AppendLine(tb + tb + "[Display(Name = \"" + objDr.GetName(i) + "\")]");

                    if (tipoObjeto == "DateTime")
                    {
                        objCodigo.AppendLine(tb + tb + "public " + objLib.DefineTipo(objDr.GetDataTypeName(i).ToString()) + "?" + " " + objDr.GetName(i) + "{" + "get { return _" + objDr.GetName(i) + "; }" + "set { _" + objDr.GetName(i) + " = value; }" + " }");
                    }
                    else
                    {
                        objCodigo.AppendLine(tb + tb + "public " + objLib.DefineTipo(objDr.GetDataTypeName(i).ToString()) + " " + objDr.GetName(i) + "{" + "get { return _" + objDr.GetName(i) + "; }" + "set { _" + objDr.GetName(i) + " = value; }" + " }");
                    }
                }
                else
                {
                    //objCodigo.AppendLine(tb + tb + "[Atributos(ChavePrimaria = false, DescricaoCampo = \"\", ChaveEstrangeira = false, ClasseChaveEstrangeira = \"\", DescricaoExibirChaveEstrangeira = \"\", RelacionarChaveEstrangeiraNovoCadastro = true)]");
                    objCodigo.AppendLine(tb + tb + "[Required(ErrorMessage = \"Informe o campo " + objDr.GetName(i) + "\")]");
                    objCodigo.AppendLine(tb + tb + "[Display(Name = \"" + objDr.GetName(i) + "\")]");

                    objCodigo.AppendLine(tb + tb + "public " + objLib.DefineTipo(objDr.GetDataTypeName(i).ToString()) + " " + objDr.GetName(i) + "{" + "get { return _" + objDr.GetName(i) + "; }" + "set { _" + objDr.GetName(i) + " = value; }" + " }");
                }

                objCodigo.AppendLine(tb + tb + "#endregion");
                objCodigo.AppendLine("");
                #endregion



                #region modelo2
                //objCodigo.AppendLine(tb + tb + "#region " + objDr.GetName(i) + "");
                ////objCodigo.AppendLine(tb + tb + "[Atributos(ChavePrimaria = false, DescricaoCampo = \"\", ChaveEstrangeira = false, ClasseChaveEstrangeira = \"\", DescricaoExibirChaveEstrangeira = \"\", RelacionarChaveEstrangeiraNovoCadastro = true)]");
                //objCodigo.AppendLine(tb + tb + "[Display(Name = \"" + objDr.GetName(i) + "\")]");
                //objCodigo.AppendLine(tb + tb + "[Required(ErrorMessage = \"Informe o campo " + objDr.GetName(i) + "\")]");
                //var ColunaIsNullable = objBanco.RetornaValor("IF(EXISTS(SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '" + strTabela + "' AND COLUMN_NAME = '" + objDr.GetName(i) + "' AND IS_NULLABLE = 'YES')) SELECT 1 IsNullable ELSE SELECT 0 IsNullable", new System.Collections.ArrayList() { }, new System.Collections.ArrayList { });
                //string tipoObjeto = objLib.DefineTipo(objDr.GetDataTypeName(i).ToString());
                //// o campo aceita nullo
                //if (Convert.ToBoolean(ColunaIsNullable) && tipoObjeto == "DateTime")
                //    objCodigo.AppendLine(tb + tb + "public " + tipoObjeto + "?" + " " + objDr.GetName(i) + " { get; set; }");
                //else
                //    objCodigo.AppendLine(tb + tb + "public " + objLib.DefineTipo(objDr.GetDataTypeName(i).ToString()) + " " + objDr.GetName(i) + " { get; set; }");
                //objCodigo.AppendLine(tb + tb + "#endregion");
                //objCodigo.AppendLine("");
                #endregion
            }
            objCodigo.AppendLine(tb + "}");
            // fecha conexão
            objBanco.CloseConn();
            objLib = null;

            objCodigo.AppendLine("}");

            return(objCodigo);
        }
Exemplo n.º 3
0
        private void ListaTabelas()
        {
            //for (int i = 0; i < lstTabelas.Items.Count; i++)
            //{
            //    lstTabelas.Items.RemoveAt();
            //}
            if (lstTabelas != null)
            {
                lstTabelas.Items.Clear();
            }

            listaTabelasGeral     = new List <string>();
            _bindingsourceTabelas = new BindingSource();

            if ((txtServidor.Text.Trim() != "") || (txtBanco.Text.Trim() != ""))
            {
                // Monta a string de conexão
                txtServidor.Text = txtServidor.Text.Contains("Erro no leitura do Registro.") ? "" : txtServidor.Text;
                txtBanco.Text    = txtBanco.Text.Contains("Erro no leitura do Registro.") ? "" : txtBanco.Text;
                txtUsuario.Text  = txtUsuario.Text.Contains("Erro no leitura do Registro.") ? "" : txtUsuario.Text;
                txtSenha.Text    = txtSenha.Text.Contains("Erro no leitura do Registro.") ? "" : txtSenha.Text;

                strConnstring = new StringBuilder();
                strConnstring.Append("Data Source=" + txtServidor.Text.Replace("'", "") + ";");
                strConnstring.Append("Initial Catalog=" + txtBanco.Text.Replace("'", "") + ";");

                if ((ckAutentica.Checked == false) && (txtUsuario.Text.Trim() != ""))
                {
                    strConnstring.Append("User ID=" + txtUsuario.Text.Replace("'", "") + ";");
                    strConnstring.Append("Password="******"'", "") + ";");
                }
                else
                {
                    // Usar autenticação segura
                    strConnstring.Append("Integrated Security=True;");
                }

                // Conecta com o banco
                try
                {
                    if (strConnstring.ToString().Contains("Data Source=;Initial Catalog=;Integrated Security=True;"))
                    {
                        //Configurações de banco vazia... não tem conexao...
                        txtServidor.Focus();
                        return;
                    }
                    objBanco = new Banco.Banco(strConnstring.ToString());

                    try
                    {
                        // Ler as tabelas
                        dr = objBanco.QueryConsulta("SELECT NAME, TYPE FROM SYSOBJECTS WHERE (TYPE = 'U' OR TYPE = 'V') AND name <> 'sysdiagrams' ORDER BY NAME");
                        while (dr.Read())
                        {
                            lstTabelas.Items.Add(dr["NAME"].ToString());
                            listaTabelasGeral.Add(dr["NAME"].ToString());
                        }
                        // Ler as tabelas
                        //listaTabelasGeral = tabelas.AsEnumerable().Select(M => M[0].ToString()).ToList();
                        _bindingsourceTabelas.DataSource = listaTabelasGeral;
                    }
                    catch (SqlException)
                    {
                        MessageBox.Show("Erro ao ler o banco de dados.");
                    }
                    catch (Exception)
                    {
                        MessageBox.Show("Erro encontrado.");
                    }
                }
                catch (SqlException sqlerr)
                {
                    MessageBox.Show(sqlerr.ToString());
                }
                finally
                {
                    lblConnstring.Text = strConnstring.ToString();
                }
            }
            else
            {
                MessageBox.Show("Informe a string de conexão com o banco.");
            }
        }
        // Metodos
        public StringBuilder GeraCodigoBLL(string _tabela, string _conexao, string _banco, bool chkAtualizarCampoDataCadastro = true)
        {
            string strTabela = _tabela;

            objCodigo = new StringBuilder();

            objCodigo.AppendLine("using System;");
            objCodigo.AppendLine("using System.Collections.Generic;");
            objCodigo.AppendLine("using System.Text;");
            objCodigo.AppendLine("using System.Data;");
            objCodigo.AppendLine("using System.Data.SqlClient;");
            objCodigo.AppendLine("using DTO;");
            objCodigo.AppendLine("using DAL;");
            objCodigo.AppendLine();
            objCodigo.AppendLine("namespace BLL");
            objCodigo.AppendLine("{");

            string tabelaFormatada = strTabela.Replace("_", "").Replace("-", "");

            //objCodigo.AppendLine();
            objCodigo.AppendLine(tb + "/// <summary>");
            objCodigo.AppendLine(tb + "/// Classe da BLL gerada automática: " + strTabela);
            if (Environment.MachineName == "MARQUESNOTE-PC")
            {
                objCodigo.AppendLine(tb + "/// Criador: Marques Silva Fonseca");
            }
            else
            {
                objCodigo.AppendLine(tb + "/// Criador: " + Environment.UserName);
            }
            objCodigo.AppendLine(tb + "/// Criada em " + strData);
            //objCodigo.AppendLine(tb + "/// Contato: [email protected]");
            objCodigo.AppendLine(tb + "/// </summary>");
            objCodigo.AppendLine(tb + "public class " + tabelaFormatada + "BO<T>");
            objCodigo.AppendLine(tb + "{");
            objCodigo.AppendLine(tb + tb + "// Atributos");
            // atributos
            objCodigo.AppendLine(tb + tb + "private DAL.Dao objDO = null;");
            objCodigo.AppendLine(tb + tb + "private StringBuilder strSql = null;");


            #region metodo FindAllGenerico
            // metodo FindAll--------------------------------
            objCodigo.AppendLine();
            objCodigo.AppendLine(tb + tb + "//Métodos");
            objCodigo.AppendLine(tb + tb + "/// <summary>");
            objCodigo.AppendLine(tb + tb + "/// Seleciona todos os registros e retorna um DataSet.");
            objCodigo.AppendLine(tb + tb + "/// </summary>");
            objCodigo.AppendLine(tb + tb + "/// <returns>DataSet</returns>");
            objCodigo.AppendLine(tb + tb + "public IEnumerable<Tab" + tabelaFormatada + "> FindAllLista()");
            objCodigo.AppendLine(tb + tb + "{");
            objCodigo.AppendLine(tb + tb + tb + "try");
            objCodigo.AppendLine(tb + tb + tb + "{");
            objCodigo.AppendLine(tb + tb + tb + tb + "strSql = new StringBuilder();");
            objCodigo.AppendLine(tb + tb + tb + tb + "strSql.Append(\" SELECT \"); ");
            //objCodigo.AppendLine(tb + tb + tb + tb + "// colunas");
            objCodigo.Append(tb + tb + tb + tb + "strSql.Append(\" ");

            // pega todas as colunas da tabela

            // Abre conexão
            objBanco = new Banco.Banco(_conexao);
            // Faz a leitura de todas as colunas da tabela
            objDr = objBanco.QueryConsulta("SELECT * FROM " + strTabela);

            nunrec = objDr.FieldCount;

            for (int i = 0; i < nunrec - 1; i++)
            {
                // lista as colunas
                objCodigo.Append(objDr.GetName(i) + ", ");
            }

            // lista a última coluna sem a virgula
            objCodigo.Append(objDr.GetName(nunrec - 1) + " ");

            // Fecha conexão
            objBanco.CloseConn();
            objBanco = null;

            objCodigo.AppendLine(" \"); ");
            objCodigo.AppendLine(tb + tb + tb + tb + "strSql.Append(\" FROM  " + strTabela + "  \");");
            objCodigo.AppendLine(tb + tb + tb + tb + "string sql = strSql.ToString();");
            objCodigo.AppendLine();
            objCodigo.AppendLine(tb + tb + tb + tb + "IEnumerable<Tab" + tabelaFormatada + "> lista = new DAL.Dao<Tab" + tabelaFormatada + ">().RetornaLista(strSql.ToString(), new List<Tab" + tabelaFormatada + ">());");
            objCodigo.AppendLine();
            objCodigo.AppendLine(tb + tb + tb + tb + "// retorna lista do tipo do objeto");
            objCodigo.AppendLine(tb + tb + tb + tb + "return lista;");
            objCodigo.AppendLine(tb + tb + tb + "}");
            objCodigo.AppendLine(tb + tb + tb + "catch (Exception er)");
            objCodigo.AppendLine(tb + tb + tb + "{");
            objCodigo.AppendLine(tb + tb + tb + tb + "throw new Exception(\"Aconteceu um erro:\" + er.Message.ToString()); ");
            objCodigo.AppendLine(tb + tb + tb + "}");
            objCodigo.AppendLine(tb + tb + tb + "finally");
            objCodigo.AppendLine(tb + tb + tb + "{");
            objCodigo.AppendLine(tb + tb + tb + tb + "strSql = null;");
            objCodigo.AppendLine(tb + tb + tb + "}");
            objCodigo.AppendLine(tb + tb + "}");
            objCodigo.AppendLine();
            #endregion

            #region metodo FindAllGenerico com where
            // metodo FindAll--------------------------------
            objCodigo.AppendLine(tb + tb + "//Métodos");
            objCodigo.AppendLine(tb + tb + "/// <summary>");
            objCodigo.AppendLine(tb + tb + "/// Seleciona todos os registros e retorna um DataSet.");
            objCodigo.AppendLine(tb + tb + "/// </summary>");
            objCodigo.AppendLine(tb + tb + "/// <returns>DataSet</returns>");
            objCodigo.AppendLine(tb + tb + "public IEnumerable<Tab" + tabelaFormatada + "> FindAllLista(string _filtro)");
            objCodigo.AppendLine(tb + tb + "{");
            objCodigo.AppendLine(tb + tb + tb + "try");
            objCodigo.AppendLine(tb + tb + tb + "{");
            objCodigo.AppendLine(tb + tb + tb + tb + "strSql = new StringBuilder();");
            objCodigo.AppendLine(tb + tb + tb + tb + "strSql.Append(\" SELECT \"); ");
            //objCodigo.AppendLine(tb + tb + tb + tb + "// colunas");
            objCodigo.Append(tb + tb + tb + tb + "strSql.Append(\" ");

            // pega todas as colunas da tabela

            // Abre conexão
            objBanco = new Banco.Banco(_conexao);
            // Faz a leitura de todas as colunas da tabela
            objDr = objBanco.QueryConsulta("SELECT * FROM " + strTabela);

            nunrec = objDr.FieldCount;

            for (int i = 0; i < nunrec - 1; i++)
            {
                // lista as colunas
                objCodigo.Append(objDr.GetName(i) + ", ");
            }

            // lista a última coluna sem a virgula
            objCodigo.Append(objDr.GetName(nunrec - 1) + " ");

            // Fecha conexão
            objBanco.CloseConn();
            objBanco = null;

            objCodigo.AppendLine(" \"); ");
            objCodigo.AppendLine(tb + tb + tb + tb + "strSql.Append(\" FROM  " + strTabela + "  \");");
            objCodigo.AppendLine(tb + tb + tb + tb + "strSql.Append(\" WHERE ( \" + _filtro + \" ) \");");
            objCodigo.AppendLine(tb + tb + tb + tb + "string sql = strSql.ToString();");
            objCodigo.AppendLine();
            objCodigo.AppendLine(tb + tb + tb + tb + "IEnumerable<Tab" + tabelaFormatada + "> lista = new DAL.Dao<Tab" + tabelaFormatada + ">().RetornaLista(strSql.ToString(), new List<Tab" + tabelaFormatada + ">());");
            objCodigo.AppendLine();
            objCodigo.AppendLine(tb + tb + tb + tb + "// retorna lista do tipo do objeto");
            objCodigo.AppendLine(tb + tb + tb + tb + "return lista;");
            objCodigo.AppendLine(tb + tb + tb + "}");
            objCodigo.AppendLine(tb + tb + tb + "catch (Exception er)");
            objCodigo.AppendLine(tb + tb + tb + "{");
            objCodigo.AppendLine(tb + tb + tb + tb + "throw new Exception(\"Aconteceu um erro:\" + er.Message.ToString()); ");
            objCodigo.AppendLine(tb + tb + tb + "}");
            objCodigo.AppendLine(tb + tb + tb + "finally");
            objCodigo.AppendLine(tb + tb + tb + "{");
            objCodigo.AppendLine(tb + tb + tb + tb + "strSql = null;");
            objCodigo.AppendLine(tb + tb + tb + "}");
            objCodigo.AppendLine(tb + tb + "}");
            objCodigo.AppendLine();
            #endregion


            // metodo FindAll--------------------------------
            objCodigo.AppendLine(tb + tb + "//Métodos");
            objCodigo.AppendLine(tb + tb + "/// <summary>");
            objCodigo.AppendLine(tb + tb + "/// Seleciona todos os registros e retorna um DataSet.");
            objCodigo.AppendLine(tb + tb + "/// </summary>");
            objCodigo.AppendLine(tb + tb + "/// <returns>DataSet</returns>");
            objCodigo.AppendLine(tb + tb + "public DataSet FindAll()");
            objCodigo.AppendLine(tb + tb + "{");
            objCodigo.AppendLine(tb + tb + tb + "try");
            objCodigo.AppendLine(tb + tb + tb + "{");
            objCodigo.AppendLine(tb + tb + tb + tb + "strSql = new StringBuilder();");
            objCodigo.AppendLine(tb + tb + tb + tb + "strSql.Append(\" SELECT \"); ");
            //objCodigo.AppendLine(tb + tb + tb + tb + "// colunas");
            objCodigo.Append(tb + tb + tb + tb + "strSql.Append(\" ");

            // pega todas as colunas da tabela

            // Abre conexão
            objBanco = new Banco.Banco(_conexao);
            // Faz a leitura de todas as colunas da tabela
            objDr = objBanco.QueryConsulta("SELECT * FROM " + strTabela);

            nunrec = objDr.FieldCount;

            for (int i = 0; i < nunrec - 1; i++)
            {
                // lista as colunas
                objCodigo.Append(objDr.GetName(i) + ", ");
            }

            // lista a última coluna sem a virgula
            objCodigo.Append(objDr.GetName(nunrec - 1) + " ");

            // Fecha conexão
            objBanco.CloseConn();
            objBanco = null;

            objCodigo.AppendLine(" \"); ");
            objCodigo.AppendLine(tb + tb + tb + tb + "strSql.Append(\" FROM  " + strTabela + "  \");");
            objCodigo.AppendLine(tb + tb + tb + tb + "string sql = strSql.ToString();");
            objCodigo.AppendLine();
            objCodigo.AppendLine(tb + tb + tb + tb + "objDO = new DAL.Dao();");
            objCodigo.AppendLine();
            objCodigo.AppendLine(tb + tb + tb + tb + "// executa consulta e retorna um DataSet");
            objCodigo.AppendLine(tb + tb + tb + tb + "return objDO.GetDataSet(strSql.ToString(), \"" + strTabela + "\");");
            objCodigo.AppendLine(tb + tb + tb + "}");
            objCodigo.AppendLine(tb + tb + tb + "catch (Exception er)");
            objCodigo.AppendLine(tb + tb + tb + "{");
            objCodigo.AppendLine(tb + tb + tb + tb + "throw new Exception(\"Aconteceu um erro:\" + er.Message.ToString()); ");
            objCodigo.AppendLine(tb + tb + tb + "}");
            objCodigo.AppendLine(tb + tb + tb + "finally");
            objCodigo.AppendLine(tb + tb + tb + "{");
            objCodigo.AppendLine(tb + tb + tb + tb + "strSql = null;");
            objCodigo.AppendLine(tb + tb + tb + "}");
            objCodigo.AppendLine(tb + tb + "}");
            objCodigo.AppendLine();

            // metodo FindAll com orderby--------------------------------
            objCodigo.AppendLine(tb + tb + "/// <summary>");
            objCodigo.AppendLine(tb + tb + "/// Seleciona todos os registros com ordenação e retorna um DataSet.");
            objCodigo.AppendLine(tb + tb + "/// </summary>");
            objCodigo.AppendLine(tb + tb + "/// <param name=\"_orderby\">campo de ordenação</param>");
            objCodigo.AppendLine(tb + tb + "/// <returns>DataSet</returns>");
            objCodigo.AppendLine(tb + tb + "public DataSet FindAll(string _orderby)");
            objCodigo.AppendLine(tb + tb + "{");
            objCodigo.AppendLine(tb + tb + tb + "try");
            objCodigo.AppendLine(tb + tb + tb + "{");
            objCodigo.AppendLine(tb + tb + tb + tb + "strSql = new StringBuilder();");
            objCodigo.AppendLine(tb + tb + tb + tb + "strSql.Append(\" SELECT \"); ");
            //objCodigo.AppendLine(tb + tb + tb + tb + "// colunas");
            objCodigo.Append(tb + tb + tb + tb + "strSql.Append(\" ");

            // pega todas as colunas da tabela

            // Abre conexão
            objBanco = new Banco.Banco(_conexao);
            // Faz a leitura de todas as colunas da tabela
            objDr = objBanco.QueryConsulta("SELECT * FROM " + strTabela);

            nunrec = objDr.FieldCount;

            for (int i = 0; i < nunrec - 1; i++)
            {
                // lista as colunas
                objCodigo.Append(objDr.GetName(i) + ", ");
            }

            // lista a última coluna sem a virgula

            objCodigo.Append(objDr.GetName(nunrec - 1) + " ");

            // Fecha conexão
            objBanco.CloseConn();
            objBanco = null;

            objCodigo.AppendLine(" \"); ");
            objCodigo.AppendLine(tb + tb + tb + tb + "strSql.Append(\" FROM  " + strTabela + "  \");");
            objCodigo.AppendLine(tb + tb + tb + tb + "strSql.Append(\" ORDER BY \" + _orderby);");
            objCodigo.AppendLine(tb + tb + tb + tb + "string sql = strSql.ToString();");
            objCodigo.AppendLine();
            objCodigo.AppendLine(tb + tb + tb + tb + "objDO = new DAL.Dao();");
            objCodigo.AppendLine();
            objCodigo.AppendLine(tb + tb + tb + tb + "// executa consulta e retorna um DataSet");
            objCodigo.AppendLine(tb + tb + tb + tb + "return objDO.GetDataSet(strSql.ToString(), \"" + strTabela + "\");");
            objCodigo.AppendLine(tb + tb + tb + "}");
            objCodigo.AppendLine(tb + tb + tb + "catch (Exception er)");
            objCodigo.AppendLine(tb + tb + tb + "{");
            objCodigo.AppendLine(tb + tb + tb + tb + "throw new Exception(\"Aconteceu um erro:\" + er.Message.ToString()); ");
            objCodigo.AppendLine(tb + tb + tb + "}");
            objCodigo.AppendLine(tb + tb + tb + "finally");
            objCodigo.AppendLine(tb + tb + tb + "{");
            objCodigo.AppendLine(tb + tb + tb + tb + "strSql = null;");
            objCodigo.AppendLine(tb + tb + tb + "}");
            objCodigo.AppendLine(tb + tb + "}");
            objCodigo.AppendLine();

            // metodo FindAllByWhere--------------------------------
            objCodigo.AppendLine(tb + tb + "/// <summary>");
            objCodigo.AppendLine(tb + tb + "/// Seleciona todos os registros com filtro.");
            objCodigo.AppendLine(tb + tb + "/// </summary>");
            objCodigo.AppendLine(tb + tb + "/// <param name=\"_filtro (\"id_campo = 1 AND campo1 = 'texto' OR campo2 LIKE 'r%'\")\">filtro da consulta</param>");
            objCodigo.AppendLine(tb + tb + "/// <returns>DataSet</returns>");
            objCodigo.AppendLine(tb + tb + "public DataSet FindByWhere(string _filtro)");
            objCodigo.AppendLine(tb + tb + "{");
            objCodigo.AppendLine(tb + tb + tb + "try");
            objCodigo.AppendLine(tb + tb + tb + "{");
            objCodigo.AppendLine(tb + tb + tb + tb + "strSql = new StringBuilder();");
            objCodigo.AppendLine(tb + tb + tb + tb + "strSql.Append(\" SELECT \"); ");
            //objCodigo.AppendLine(tb + tb + tb + tb + "// colunas");
            objCodigo.Append(tb + tb + tb + tb + "strSql.Append(\" ");

            // pega todas as colunas da tabela

            // Abre conexão
            objBanco = new Banco.Banco(_conexao);
            // Faz a leitura de todas as colunas da tabela
            objDr = objBanco.QueryConsulta("SELECT * FROM " + strTabela);

            nunrec = objDr.FieldCount;

            for (int i = 0; i < nunrec - 1; i++)
            {
                // lista as colunas
                objCodigo.Append(objDr.GetName(i) + ", ");
            }

            // lista a última coluna sem a virgula

            objCodigo.Append(objDr.GetName(nunrec - 1) + " ");

            // Fecha conexão
            objBanco.CloseConn();
            objBanco = null;

            objCodigo.AppendLine(" \"); ");
            objCodigo.AppendLine(tb + tb + tb + tb + "strSql.Append(\" FROM  " + strTabela + "  \");");
            objCodigo.AppendLine(tb + tb + tb + tb + "strSql.Append(\" WHERE ( \" + _filtro + \" ) \");");
            objCodigo.AppendLine(tb + tb + tb + tb + "string sql = strSql.ToString();");
            objCodigo.AppendLine();
            objCodigo.AppendLine(tb + tb + tb + tb + "objDO = new DAL.Dao();");
            objCodigo.AppendLine();
            objCodigo.AppendLine(tb + tb + tb + tb + "// executa consulta e retorna um DataSet");
            objCodigo.AppendLine(tb + tb + tb + tb + "return objDO.GetDataSet(strSql.ToString(), \"" + strTabela + "\");");
            objCodigo.AppendLine(tb + tb + tb + "}");
            objCodigo.AppendLine(tb + tb + tb + "catch (Exception er)");
            objCodigo.AppendLine(tb + tb + tb + "{");
            objCodigo.AppendLine(tb + tb + tb + tb + "throw new Exception(\"Aconteceu um erro:\" + er.Message.ToString()); ");
            objCodigo.AppendLine(tb + tb + tb + "}");
            objCodigo.AppendLine(tb + tb + tb + "finally");
            objCodigo.AppendLine(tb + tb + tb + "{");
            objCodigo.AppendLine(tb + tb + tb + tb + "strSql = null;");
            objCodigo.AppendLine(tb + tb + tb + "}");
            objCodigo.AppendLine(tb + tb + "}");
            objCodigo.AppendLine();

            // metodo FindAllByWhere com ordenação--------------------------------
            objCodigo.AppendLine(tb + tb + "/// <summary>");
            objCodigo.AppendLine(tb + tb + "/// Seleciona todos os registros com filtro e ordenação.");
            objCodigo.AppendLine(tb + tb + "/// </summary>");
            objCodigo.AppendLine(tb + tb + "/// <param name=\"_filtro (\"id_campo = 1 AND campo1 = 'texto' OR campo2 LIKE 'r%'\")\">filtro da consulta</param>");
            objCodigo.AppendLine(tb + tb + "/// <param name=\"_orderby\">campo de ordenação</param>");
            objCodigo.AppendLine(tb + tb + "/// <returns>DataSet</returns>");
            objCodigo.AppendLine(tb + tb + "public DataSet FindByWhere(string _filtro, string _orderby)");
            objCodigo.AppendLine(tb + tb + "{");
            objCodigo.AppendLine(tb + tb + tb + "try");
            objCodigo.AppendLine(tb + tb + tb + "{");
            objCodigo.AppendLine(tb + tb + tb + tb + "strSql = new StringBuilder();");
            objCodigo.AppendLine(tb + tb + tb + tb + "strSql.Append(\" SELECT \"); ");
            //objCodigo.AppendLine(tb + tb + tb + tb + "// colunas");
            objCodigo.Append(tb + tb + tb + tb + "strSql.Append(\" ");

            // pega todas as colunas da tabela

            // Abre conexão
            objBanco = new Banco.Banco(_conexao);
            // Faz a leitura de todas as colunas da tabela
            objDr = objBanco.QueryConsulta(" SELECT * FROM " + strTabela);

            nunrec = objDr.FieldCount;

            for (int i = 0; i < nunrec - 1; i++)
            {
                // lista as colunas
                objCodigo.Append(objDr.GetName(i) + ", ");
            }

            // lista a última coluna sem a virgula

            objCodigo.Append(objDr.GetName(nunrec - 1) + " ");

            // Fecha conexão
            objBanco.CloseConn();
            objBanco = null;

            objCodigo.AppendLine(" \"); ");
            objCodigo.AppendLine(tb + tb + tb + tb + "strSql.Append(\" FROM  " + strTabela + "  \");");
            objCodigo.AppendLine(tb + tb + tb + tb + "strSql.Append(\" WHERE ( \" + _filtro + \" ) \");");
            objCodigo.AppendLine(tb + tb + tb + tb + "strSql.Append(\" ORDER BY \" + _orderby);");
            objCodigo.AppendLine(tb + tb + tb + tb + "string sql = strSql.ToString();");
            objCodigo.AppendLine();
            objCodigo.AppendLine(tb + tb + tb + tb + "objDO = new DAL.Dao();");
            objCodigo.AppendLine();
            objCodigo.AppendLine(tb + tb + tb + tb + "// executa consulta e retorna um DataSet");
            objCodigo.AppendLine(tb + tb + tb + tb + "return objDO.GetDataSet(strSql.ToString(), \"" + strTabela + "\");");
            objCodigo.AppendLine(tb + tb + tb + "}");
            objCodigo.AppendLine(tb + tb + tb + "catch (Exception er)");
            objCodigo.AppendLine(tb + tb + tb + "{");
            objCodigo.AppendLine(tb + tb + tb + tb + "throw new Exception(\"Aconteceu um erro:\" + er.Message.ToString()); ");
            objCodigo.AppendLine(tb + tb + tb + "}");
            objCodigo.AppendLine(tb + tb + tb + "finally");
            objCodigo.AppendLine(tb + tb + tb + "{");
            objCodigo.AppendLine(tb + tb + tb + tb + "strSql = null;");
            objCodigo.AppendLine(tb + tb + tb + "}");
            objCodigo.AppendLine(tb + tb + "}");
            objCodigo.AppendLine();

            // MÉTODOS DE SELEÇÃO INDIVIDUAL
            // faz um método de filtro para cada coluna da tabela

            // pega todas as colunas da tabela

            // Abre conexão
            objBanco = new Banco.Banco(_conexao);
            // Faz a leitura de todas as colunas da tabela
            objDr = objBanco.QueryConsulta("SELECT * FROM " + strTabela);
            // Objeto da clase library
            objLib = new Library.Library();
            nunrec = objDr.FieldCount;

            for (int i = 0; i < nunrec; i++)
            {
                // lista as colunas
                // metodo FindAllBy "campo" --------------------------------
                objCodigo.AppendLine(tb + tb + "/// <summary>");
                objCodigo.AppendLine(tb + tb + "/// Seleciona todos os registros por " + objDr.GetName(i) + ".");
                objCodigo.AppendLine(tb + tb + "/// </summary>");
                objCodigo.AppendLine(tb + tb + "/// <param name=\"_" + objDr.GetName(i) + "\">filtro da consulta</param>");
                objCodigo.AppendLine(tb + tb + "/// <returns>DataSet</returns>");
                objCodigo.AppendLine(tb + tb + "public DataSet FindBy_" + objDr.GetName(i) + "(" + objLib.DefineTipo(objDr.GetDataTypeName(i).ToString()) + " _" + objDr.GetName(i) + ")");
                objCodigo.AppendLine(tb + tb + "{");
                objCodigo.AppendLine(tb + tb + tb + "try");
                objCodigo.AppendLine(tb + tb + tb + "{");
                objCodigo.AppendLine(tb + tb + tb + tb + "strSql = new StringBuilder();");
                objCodigo.AppendLine(tb + tb + tb + tb + "strSql.Append(\" SELECT \"); ");
                //objCodigo.AppendLine(tb + tb + tb + tb + "// colunas");
                objCodigo.Append(tb + tb + tb + tb + "strSql.Append(\" ");

                for (int j = 0; j < nunrec - 1; j++)
                {
                    // lista as colunas
                    objCodigo.Append(objDr.GetName(j) + ", ");
                }

                // lista a última coluna sem a virgula
                objCodigo.Append(objDr.GetName(nunrec - 1) + " ");

                objCodigo.AppendLine(" \"); ");
                objCodigo.AppendLine(tb + tb + tb + tb + "strSql.Append(\" FROM  " + strTabela + "  \");");
                objCodigo.AppendLine(tb + tb + tb + tb + "strSql.Append(\" WHERE ( " + objLib.SelectParam(objDr.GetName(i).ToString(), objDr.GetDataTypeName(i).ToString()) + " ) \");");
                objCodigo.AppendLine(tb + tb + tb + tb + "string sql = strSql.ToString();");
                objCodigo.AppendLine();
                objCodigo.AppendLine(tb + tb + tb + tb + "objDO = new DAL.Dao();");
                objCodigo.AppendLine();
                objCodigo.AppendLine(tb + tb + tb + tb + "// executa consulta e retorna um DataSet");
                objCodigo.AppendLine(tb + tb + tb + tb + "return objDO.GetDataSet(strSql.ToString(), \"" + strTabela + "\");");
                objCodigo.AppendLine(tb + tb + tb + "}");
                objCodigo.AppendLine(tb + tb + tb + "catch (Exception er)");
                objCodigo.AppendLine(tb + tb + tb + "{");
                objCodigo.AppendLine(tb + tb + tb + tb + "throw new Exception(\"Aconteceu um erro:\" + er.Message.ToString()); ");
                objCodigo.AppendLine(tb + tb + tb + "}");
                objCodigo.AppendLine(tb + tb + tb + "finally");
                objCodigo.AppendLine(tb + tb + tb + "{");
                objCodigo.AppendLine(tb + tb + tb + tb + "strSql = null;");
                objCodigo.AppendLine(tb + tb + tb + "}");
                objCodigo.AppendLine(tb + tb + "}");
                objCodigo.AppendLine();

                // lista as colunas
                // metodo FindAllBy "campo" --------------------------------
                objCodigo.AppendLine(tb + tb + "/// <summary>");
                objCodigo.AppendLine(tb + tb + "/// Seleciona todos os registros por " + objDr.GetName(i) + ".");
                objCodigo.AppendLine(tb + tb + "/// </summary>");
                objCodigo.AppendLine(tb + tb + "/// <param name=\"_" + objDr.GetName(i) + "\">filtro da consulta</param>");
                objCodigo.AppendLine(tb + tb + "/// <param name=\"_orderby\">campo de ordenação</param>");
                objCodigo.AppendLine(tb + tb + "/// <returns>DataSet</returns>");
                objCodigo.AppendLine(tb + tb + "public DataSet FindBy_" + objDr.GetName(i) + "(" + objLib.DefineTipo(objDr.GetDataTypeName(i).ToString()) + " _" + objDr.GetName(i) + ", string _orderby)");
                objCodigo.AppendLine(tb + tb + "{");
                objCodigo.AppendLine(tb + tb + tb + "try");
                objCodigo.AppendLine(tb + tb + tb + "{");
                objCodigo.AppendLine(tb + tb + tb + tb + "strSql = new StringBuilder();");
                objCodigo.AppendLine(tb + tb + tb + tb + "strSql.Append(\" SELECT \"); ");
                //objCodigo.AppendLine(tb + tb + tb + tb + "// colunas");
                objCodigo.Append(tb + tb + tb + tb + "strSql.Append(\" ");

                for (int j = 0; j < nunrec - 1; j++)
                {
                    // lista as colunas
                    objCodigo.Append(objDr.GetName(j) + ", ");
                }

                // lista a última coluna sem a virgula
                objCodigo.Append(objDr.GetName(nunrec - 1) + " ");

                objCodigo.AppendLine(" \"); ");
                objCodigo.AppendLine(tb + tb + tb + tb + "strSql.Append(\" FROM  " + strTabela + "  \");");
                objCodigo.AppendLine(tb + tb + tb + tb + "strSql.Append(\" WHERE ( " + objLib.SelectParam(objDr.GetName(i).ToString(), objDr.GetDataTypeName(i).ToString()) + " ) \");");
                objCodigo.AppendLine(tb + tb + tb + tb + "strSql.Append(\" ORDER BY \" + _orderby);");
                objCodigo.AppendLine(tb + tb + tb + tb + "string sql = strSql.ToString();");
                objCodigo.AppendLine();
                objCodigo.AppendLine(tb + tb + tb + tb + "objDO = new DAL.Dao();");
                objCodigo.AppendLine();
                objCodigo.AppendLine(tb + tb + tb + tb + "// executa consulta e retorna um DataSet");
                objCodigo.AppendLine(tb + tb + tb + tb + "return objDO.GetDataSet(strSql.ToString(), \"" + strTabela + "\");");
                objCodigo.AppendLine(tb + tb + tb + "}");
                objCodigo.AppendLine(tb + tb + tb + "catch (Exception er)");
                objCodigo.AppendLine(tb + tb + tb + "{");
                objCodigo.AppendLine(tb + tb + tb + tb + "throw new Exception(\"Aconteceu um erro:\" + er.Message.ToString()); ");
                objCodigo.AppendLine(tb + tb + tb + "}");
                objCodigo.AppendLine(tb + tb + tb + "finally");
                objCodigo.AppendLine(tb + tb + tb + "{");
                objCodigo.AppendLine(tb + tb + tb + tb + "strSql = null;");
                objCodigo.AppendLine(tb + tb + tb + "}");
                objCodigo.AppendLine(tb + tb + "}");
                objCodigo.AppendLine();
            }

            // lista a última coluna sem a virgula

            // Fecha conexão
            objBanco.CloseConn();
            objBanco = null;

            // fazer toda validação dos campos
            // metodo Insert--------------------------------
            objCodigo.AppendLine(tb + tb + "/// <summary>");
            objCodigo.AppendLine(tb + tb + "/// Insere os registros do banco e retorna o número de linhas afetadas.");
            objCodigo.AppendLine(tb + tb + "/// </summary>");
            objCodigo.AppendLine(tb + tb + "/// <param name=\"tab\">objetos vo do banco</param>");
            objCodigo.AppendLine(tb + tb + "/// <returns>int</returns>");
            objCodigo.AppendLine(tb + tb + "public int Insert(Tab" + tabelaFormatada + " tab)");
            objCodigo.AppendLine(tb + tb + "{");
            objCodigo.AppendLine(tb + tb + tb + "try");
            objCodigo.AppendLine(tb + tb + tb + "{");
            objCodigo.AppendLine(tb + tb + tb + tb + "strSql = new StringBuilder();");
            objCodigo.AppendLine(tb + tb + tb + tb + "strSql.Append(\" INSERT INTO  " + strTabela + "  \"); ");
            objCodigo.AppendLine(tb + tb + tb + tb + "strSql.Append(\" (\"); ");

            // pega todas as colunas da tabela

            // Abre conexão
            objBanco = new Banco.Banco(_conexao);
            // Faz a leitura de todas as colunas da tabela
            objDr = objBanco.QueryConsulta("SELECT * FROM " + strTabela);

            nunrec = objDr.FieldCount;

            for (int i = 0; i < nunrec - 1; i++)
            {
                // lista as colunas
                objCodigo.AppendLine(tb + tb + tb + tb + "strSql.Append(\" " + objDr.GetName(i) + ", \"); ");
            }

            // lista a última coluna sem a virgula
            objCodigo.AppendLine(tb + tb + tb + tb + "strSql.Append(\" " + objDr.GetName(nunrec - 1) + " \"); ");

            objCodigo.AppendLine(tb + tb + tb + tb + "strSql.Append(\" ) \"); ");

            // Valores
            objCodigo.AppendLine(tb + tb + tb + tb + "strSql.Append(\" VALUES (\"); ");

            // objeto da classe Libary
            objLib = new Library.Library();

            for (int i = 0; i < nunrec - 1; i++)
            {
                object valorDefaultColuna = objBanco.RetornaValor("SELECT COLUMN_DEFAULT FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @Tabela AND COLUMN_NAME = @Coluna ",
                                                                  new System.Collections.ArrayList()
                {
                    "@Tabela", "@Coluna"
                }, new System.Collections.ArrayList()
                {
                    strTabela, objDr.GetName(i).ToString()
                });
                if (valorDefaultColuna != DBNull.Value)
                {
                    objCodigo.AppendLine(tb + tb + tb + tb + "strSql.Append(\" " + "DEFAULT" + ", \"); ");
                }
                else
                {
                    // lista as colunas
                    objCodigo.AppendLine(tb + tb + tb + tb + "strSql.Append(\" " + objLib.InsertParam(objDr.GetName(i).ToString(), objDr.GetDataTypeName(i).ToString()).Replace("_vo", "tab") + ", \"); ");
                }
            }

            object valorDefaultColuna2 = objBanco.RetornaValor("SELECT COLUMN_DEFAULT FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @Tabela AND COLUMN_NAME = @Coluna ",
                                                               new System.Collections.ArrayList()
            {
                "@Tabela", "@Coluna"
            }, new System.Collections.ArrayList()
            {
                strTabela, objDr.GetName(nunrec - 1).ToString()
            });
            if (valorDefaultColuna2 != DBNull.Value)
            {
                objCodigo.AppendLine(tb + tb + tb + tb + "strSql.Append(\" " + "DEFAULT" + " )\"); ");
            }
            else
            {
                // lista a última coluna sem a virgula
                objCodigo.AppendLine(tb + tb + tb + tb + "strSql.Append(\" " + objLib.InsertParam(objDr.GetName(nunrec - 1).ToString(), objDr.GetDataTypeName(nunrec - 1).ToString()).Replace("_vo", "tab") + " )\"); ");
            }

            //objCodigo.AppendLine(tb + tb + tb + tb + "strSql.Append(\" ) \"); ");

            // Fecha conexão
            objBanco.CloseConn();
            objBanco = null;

            objCodigo.AppendLine(tb + tb + tb + tb + "objDO = new DAL.Dao();");
            objCodigo.AppendLine();
            objCodigo.AppendLine(tb + tb + tb + tb + "// executa comando e retorna o número de linhas afetadas.");
            objCodigo.AppendLine(tb + tb + tb + tb + "object retorno = objDO.ExecultarScript(strSql.ToString());");
            objCodigo.AppendLine(tb + tb + tb + tb + "return Convert.ToInt32(retorno.ToString() == \"\" ? 1 : 0 );");
            objCodigo.AppendLine(tb + tb + tb + "}");
            objCodigo.AppendLine(tb + tb + tb + "catch (Exception er)");
            objCodigo.AppendLine(tb + tb + tb + "{");
            objCodigo.AppendLine(tb + tb + tb + tb + "throw new Exception(\"Aconteceu um erro:\" + er.Message.ToString()); ");
            objCodigo.AppendLine(tb + tb + tb + "}");
            objCodigo.AppendLine(tb + tb + tb + "finally");
            objCodigo.AppendLine(tb + tb + tb + "{");
            objCodigo.AppendLine(tb + tb + tb + tb + "strSql = null;");
            objCodigo.AppendLine(tb + tb + tb + "}");
            objCodigo.AppendLine(tb + tb + "}");
            objCodigo.AppendLine();


            // metodo Update--------------------------------
            objCodigo.AppendLine(tb + tb + "/// <summary>");
            objCodigo.AppendLine(tb + tb + "/// Atualiza os registros do banco e retorna o número de linhas afetadas.");
            objCodigo.AppendLine(tb + tb + "/// </summary>");
            objCodigo.AppendLine(tb + tb + "/// <param name=\"tab\">objetos vo do banco</param>");
            objCodigo.AppendLine(tb + tb + "/// <returns>int</returns>");
            objCodigo.AppendLine(tb + tb + "public int Update(Tab" + tabelaFormatada + " tab)");
            objCodigo.AppendLine(tb + tb + "{");
            objCodigo.AppendLine(tb + tb + tb + "try");
            objCodigo.AppendLine(tb + tb + tb + "{");
            objCodigo.AppendLine(tb + tb + tb + tb + "strSql = new StringBuilder();");
            objCodigo.AppendLine(tb + tb + tb + tb + "strSql.Append(\" UPDATE  " + strTabela + "  \"); ");
            objCodigo.AppendLine(tb + tb + tb + tb + "strSql.Append(\" SET \"); ");

            // Abre conexão
            objBanco = new Banco.Banco(_conexao);
            // Faz a leitura de todas as colunas da tabela
            objDr = objBanco.QueryConsulta("SELECT * FROM " + strTabela);
            // Cria o objeto da classe Library
            objLib = new Library.Library();

            nunrec = objDr.FieldCount;

            for (int i = 0; i < nunrec; i++)
            {
                if (i == 0)//1º linha
                {
                    if (objDr.GetName(i).ToString() == "DataCadastro")
                    {
                        if (chkAtualizarCampoDataCadastro)
                        {
                            //sem virgula
                            objCodigo.AppendLine(tb + tb + tb + tb + "strSql.Append(\" " + objLib.UpdateParam(objDr.GetName(i).ToString(), objDr.GetDataTypeName(i).ToString()) + " " + " \"); ");
                        }
                        if (!chkAtualizarCampoDataCadastro)
                        {
                            objCodigo.AppendLine(tb + tb + tb + tb + "//strSql.Append(\" " + objLib.UpdateParam(objDr.GetName(i).ToString(), objDr.GetDataTypeName(i).ToString()) + " " + " \"); ");
                        }
                    }
                    else
                    {
                        //sem virgula
                        objCodigo.AppendLine(tb + tb + tb + tb + "strSql.Append(\" " + objLib.UpdateParam(objDr.GetName(i).ToString(), objDr.GetDataTypeName(i).ToString()) + " " + " \"); ");
                    }
                }
                else
                {
                    if (objDr.GetName(i).ToString() == "DataCadastro")
                    {
                        if (chkAtualizarCampoDataCadastro)
                        {
                            //com virgula
                            objCodigo.AppendLine(tb + tb + tb + tb + "strSql.Append(\"," + objLib.UpdateParam(objDr.GetName(i).ToString(), objDr.GetDataTypeName(i).ToString()) + " " + " \"); ");
                        }
                        if (!chkAtualizarCampoDataCadastro)
                        {
                            objCodigo.AppendLine(tb + tb + tb + tb + "//strSql.Append(\"," + objLib.UpdateParam(objDr.GetName(i).ToString(), objDr.GetDataTypeName(i).ToString()) + " " + " \"); ");
                        }
                    }
                    else
                    {
                        //com virgula
                        objCodigo.AppendLine(tb + tb + tb + tb + "strSql.Append(\"," + objLib.UpdateParam(objDr.GetName(i).ToString(), objDr.GetDataTypeName(i).ToString()) + " " + " \"); ");
                    }
                }
            }

            objCodigo.AppendLine(tb + tb + tb + tb + "strSql.Append(\" WHERE (" + objLib.UpdateParam(objDr.GetName(0).ToString(), objDr.GetDataTypeName(0).ToString()) + " ) \");");

            // Fecha conexão
            objBanco.CloseConn();
            objBanco = null;
            objLib   = null;

            objCodigo.AppendLine();
            objCodigo.AppendLine(tb + tb + tb + tb + "objDO = new DAL.Dao();");
            objCodigo.AppendLine();
            objCodigo.AppendLine(tb + tb + tb + tb + "// executa comando e retorna o número de linhas afetadas.");
            objCodigo.AppendLine(tb + tb + tb + tb + "object retorno = objDO.ExecultarScript(strSql.ToString());");
            objCodigo.AppendLine(tb + tb + tb + tb + "return Convert.ToInt32(retorno.ToString() == \"\" ? 1 : 0 );");
            objCodigo.AppendLine(tb + tb + tb + "}");
            objCodigo.AppendLine(tb + tb + tb + "catch (Exception er)");
            objCodigo.AppendLine(tb + tb + tb + "{");
            objCodigo.AppendLine(tb + tb + tb + tb + "throw new Exception(\"Aconteceu um erro:\" + er.Message.ToString()); ");
            objCodigo.AppendLine(tb + tb + tb + "}");
            objCodigo.AppendLine(tb + tb + tb + "finally");
            objCodigo.AppendLine(tb + tb + tb + "{");
            objCodigo.AppendLine(tb + tb + tb + tb + "strSql = null;");
            objCodigo.AppendLine(tb + tb + tb + "}");
            objCodigo.AppendLine(tb + tb + "}");
            objCodigo.AppendLine();

            // metodo Delete--------------------------------
            objCodigo.AppendLine(tb + tb + "/// <summary>");
            objCodigo.AppendLine(tb + tb + "/// Deleta os registros do banco e retorna o número de linhas afetadas.");
            objCodigo.AppendLine(tb + tb + "/// </summary>");
            objCodigo.AppendLine(tb + tb + "/// <param name=\"tab\">objetos vo do banco</param>");
            objCodigo.AppendLine(tb + tb + "/// <returns>int</returns>");
            objCodigo.AppendLine(tb + tb + "public int Delete(Tab" + tabelaFormatada + " tab)");
            objCodigo.AppendLine(tb + tb + "{");
            objCodigo.AppendLine(tb + tb + tb + "try");
            objCodigo.AppendLine(tb + tb + tb + "{");
            objCodigo.AppendLine(tb + tb + tb + tb + "strSql = new StringBuilder();");
            objCodigo.AppendLine(tb + tb + tb + tb + "strSql.Append(\" DELETE FROM " + strTabela + "  \"); ");

            // Abre conexão
            objBanco = new Banco.Banco(_conexao);
            // Faz a leitura de todas as colunas da tabela
            objDr = objBanco.QueryConsulta("SELECT * FROM " + strTabela);

            objCodigo.AppendLine(tb + tb + tb + tb + "strSql.Append(\" WHERE ( " + objDr.GetName(0).ToString() + " = '\" + tab." + objDr.GetName(0).ToString() + " + \"' ) \");");

            // Fecha conexão
            objBanco.CloseConn();
            objBanco = null;

            objCodigo.AppendLine();
            objCodigo.AppendLine(tb + tb + tb + tb + "objDO = new DAL.Dao();");
            objCodigo.AppendLine();
            objCodigo.AppendLine(tb + tb + tb + tb + "// executa comando e retorna o número de linhas afetadas.");
            objCodigo.AppendLine(tb + tb + tb + tb + "object retorno = objDO.ExecultarScript(strSql.ToString());");
            objCodigo.AppendLine(tb + tb + tb + tb + "return Convert.ToInt32(retorno.ToString() == \"\" ? 1 : 0 );");
            objCodigo.AppendLine(tb + tb + tb + "}");
            objCodigo.AppendLine(tb + tb + tb + "catch (Exception er)");
            objCodigo.AppendLine(tb + tb + tb + "{");
            objCodigo.AppendLine(tb + tb + tb + tb + "throw new Exception(\"Aconteceu um erro:\" + er.Message.ToString()); ");
            objCodigo.AppendLine(tb + tb + tb + "}");
            objCodigo.AppendLine(tb + tb + tb + "finally");
            objCodigo.AppendLine(tb + tb + tb + "{");
            objCodigo.AppendLine(tb + tb + tb + tb + "strSql = null;");
            objCodigo.AppendLine(tb + tb + tb + "}");
            objCodigo.AppendLine(tb + tb + "}");
            objCodigo.AppendLine();



            // Fim dos métodos BO
            objCodigo.AppendLine(tb + "}");
            objCodigo.AppendLine();

            objCodigo.AppendLine("}");

            return(objCodigo);
        }
        // Metodos
        public StringBuilder GeraCodigoController(string _nomeNameSpaceProjeto, string _tabela, string _conexao, string _banco)
        {
            string strTabela = _tabela;

            objCodigo = new StringBuilder();

            #region Inicial...
            objCodigo.AppendLine("using System;");
            objCodigo.AppendLine("using System.Collections.Generic;");
            objCodigo.AppendLine("using System.Collections;");
            objCodigo.AppendLine("using System.Linq;");
            objCodigo.AppendLine("using System.Text;");
            objCodigo.AppendLine("using System.Web.Mvc;");
            objCodigo.AppendLine("using DTO;");
            objCodigo.AppendLine("using BLL;");
            objCodigo.AppendLine();
            objCodigo.AppendLine("/// <summary>");
            objCodigo.AppendLine("/// Classe Controller gerada automática: " + strTabela);
            if (Environment.MachineName == "MARQUESNOTE-PC")
            {
                objCodigo.AppendLine("/// Criador: Marques Silva Fonseca");
            }
            else
            {
                objCodigo.AppendLine("/// Criador: " + Environment.UserName);
            }
            objCodigo.AppendLine("/// Criada em " + strData);
            //objCodigo.AppendLine("/// Contato: [email protected]");
            objCodigo.AppendLine("/// </summary>");
            objCodigo.AppendLine("namespace " + _nomeNameSpaceProjeto + ".Controllers");
            objCodigo.AppendLine("{");

            string tabelaFormatada = strTabela.Replace("_", "").Replace("-", "");

            string objtoBLLAtual  = tabelaFormatada + "BO";                                      //TabelaBO
            string objetoDTOAtual = "Tab" + tabelaFormatada;                                     //TabTabela
            System.Globalization.CultureInfo cultureinfo = System.Threading.Thread.CurrentThread.CurrentCulture;
            string tabelaMinusculo   = tabelaFormatada.ToLower();                                //tabela
            string tabelaMinusculoBO = cultureinfo.TextInfo.ToTitleCase(tabelaFormatada) + "BO"; //tabelaBO

            // Abre conexão com o banco
            objBanco = new Banco.Banco(_conexao);
            // Cria o objeto da classe Library
            objLib = new Library.Library();

            objCodigo.AppendLine(tb + "[Authorize]");
            objCodigo.AppendLine(tb + "public class " + tabelaFormatada + "Controller : Controller");
            objCodigo.AppendLine(tb + "{");
            if (strTabela.Substring(0, 2).ToLower() != "vw")
            {
                objCodigo.AppendLine(tb + tb + string.Format("//{0}<{1}> {2} = new {3}<{4}>();", "Vw" + objtoBLLAtual, "Tab" + "Vw" + tabelaFormatada, "Vw" + tabelaMinusculoBO, "Vw" + objtoBLLAtual, "Tab" + "Vw" + tabelaFormatada));
            }
            objCodigo.AppendLine(tb + tb + string.Format("{0}<{1}> {2} = new {3}<{4}>();", objtoBLLAtual, objetoDTOAtual, tabelaMinusculoBO, objtoBLLAtual, objetoDTOAtual));
            objCodigo.AppendLine();
            #endregion


            #region Index
            objCodigo.AppendLine(tb + "// GET: " + tabelaFormatada + "");
            objCodigo.AppendLine(tb + "public ActionResult Index()");
            objCodigo.AppendLine(tb + "{");
            //objCodigo.AppendLine(tb + tb + "ViewBag.Qtd = new DAL.Dao().ExecultarScript(\"Select count(*) from Modulo\");");
            if (strTabela.Substring(0, 2).ToLower() != "vw")
            {
                objCodigo.AppendLine(tb + tb + "//IEnumerable<" + "Tab" + "Vw" + tabelaFormatada + "> listaRetornada = " + "Vw" + tabelaMinusculoBO + ".FindAllLista().AsEnumerable<" + "Tab" + "Vw" + tabelaFormatada + ">().OrderByDescending(M => M.DataCadastro);");
            }
            objCodigo.AppendLine(tb + tb + "IEnumerable<" + objetoDTOAtual + "> listaRetornada = " + tabelaMinusculoBO + ".FindAllLista().AsEnumerable<" + objetoDTOAtual + ">().OrderByDescending(M => M.DataCadastro);");
            objCodigo.AppendLine(tb + tb + "return View(listaRetornada);");
            objCodigo.AppendLine(tb + "}");
            objCodigo.AppendLine();
            #endregion


            #region Details
            // Abre conexão
            objBanco = new Banco.Banco(_conexao);
            // Faz a leitura de todas as colunas da tabela
            objDr  = objBanco.QueryConsulta("SELECT * FROM " + strTabela);
            nunrec = objDr.FieldCount;
            // objeto da classe Libary
            objLib = new Library.Library();

            objCodigo.AppendLine(tb + "// GET: " + tabelaFormatada + "/Details/5");
            if (nunrec > 0)
            {
                string tipoParametro = objLib.DefineTipo(objDr.GetDataTypeName(0).ToString());
                if (tipoParametro == "Guid")
                {
                    objCodigo.AppendLine(tb + "public ActionResult Details(string id)");
                    objCodigo.AppendLine(tb + "{");
                    //objCodigo.AppendLine(tb + tb + "System.Data.DataSet dsRetornado = " + tabelaMinusculoBO + ".FindBy_" + tabelaFormatada + "Id(new Guid(id));");
                }
                else if (tipoParametro == "string")
                {
                    objCodigo.AppendLine(tb + "public ActionResult Details(string id)");
                    objCodigo.AppendLine(tb + "{");
                    //objCodigo.AppendLine(tb + tb + "System.Data.DataSet dsRetornado = " + tabelaMinusculoBO + ".FindBy_" + tabelaFormatada + "Id(id);");
                }
                else
                {
                    objCodigo.AppendLine(tb + "public ActionResult Details(int id)");
                    objCodigo.AppendLine(tb + "{");
                    //objCodigo.AppendLine(tb + tb + "System.Data.DataSet dsRetornado = " + tabelaMinusculoBO + ".FindBy_" + tabelaFormatada + "Id(id);");
                }
            }
            if (strTabela.Substring(0, 2).ToLower() != "vw")
            {
                objCodigo.AppendLine(tb + tb + "//List<" + "Tab" + "Vw" + tabelaFormatada + "> listaRetornada = " + "Vw" + tabelaMinusculoBO + ".FindAllLista(string.Format(\"" + objDr.GetName(0) + " = '{0}'\", id)).ToList();");
            }
            objCodigo.AppendLine(tb + tb + "List<" + objetoDTOAtual + "> listaRetornada = " + tabelaMinusculoBO + ".FindAllLista(string.Format(\"" + objDr.GetName(0) + " = '{0}'\", id)).ToList();");
            objCodigo.AppendLine("");
            objCodigo.AppendLine(tb + tb + "if (listaRetornada.Count() > 0)");
            objCodigo.AppendLine(tb + tb + "{");
            objCodigo.AppendLine(tb + tb + "    return View(listaRetornada[0]);");
            objCodigo.AppendLine(tb + tb + "}");
            objCodigo.AppendLine(tb + tb + "else");
            objCodigo.AppendLine(tb + tb + "{");
            objCodigo.AppendLine(tb + tb + "    //Não retornou nenhum registro");
            objCodigo.AppendLine(tb + tb + "    return RedirectToAction(\"Index\");");
            objCodigo.AppendLine(tb + tb + "}");
            objCodigo.AppendLine(tb + "}");
            objCodigo.AppendLine("");

            // Fecha conexão
            objBanco.CloseConn();
            objBanco = null;

            #endregion


            #region Create
            objCodigo.AppendLine(tb + "// GET: " + tabelaFormatada + "/Create");
            objCodigo.AppendLine(tb + "public ActionResult Create()");
            objCodigo.AppendLine(tb + "{");
            List <string> ColunasRelacionadasForengKey = RetornaColunasRelacionadasForengKey(nomeTabela: strTabela, conexao: _conexao);
            List <string> ColunasReferenciadas         = RetornaColunasReferenciadas(nomeTabela: strTabela, conexao: _conexao);
            List <string> TabelaReferenciada           = RetornaTabelaReferenciadas(nomeTabela: strTabela, conexao: _conexao);
            for (int i = 0; i < ColunasRelacionadasForengKey.Count; i++)
            {
                objCodigo.AppendLine(tb + tb + "ViewBag." + ColunasRelacionadasForengKey[i] + " = new SelectList(new " + TabelaReferenciada[i] + "BO<Tab" + TabelaReferenciada[i] + ">().FindAllLista(), \"" + ColunasReferenciadas[0] + "\", \"Descricao\");");
            }
            objCodigo.AppendLine(tb + tb + "return View();");
            objCodigo.AppendLine(tb + "}");
            objCodigo.AppendLine();
            #endregion


            #region Create
            // Abre conexão
            objBanco = new Banco.Banco(_conexao);
            // Faz a leitura de todas as colunas da tabela
            objDr  = objBanco.QueryConsulta("SELECT * FROM " + strTabela);
            nunrec = objDr.FieldCount;
            // objeto da classe Libary
            objLib = new Library.Library();

            objCodigo.AppendLine(tb + "// POST: " + tabelaFormatada + "/Create");
            objCodigo.AppendLine(tb + "[HttpPost]");
            objCodigo.AppendLine(tb + "public ActionResult Create(" + objetoDTOAtual + " tab)");
            objCodigo.AppendLine(tb + "{");
            objCodigo.AppendLine(tb + tb + "    try");
            objCodigo.AppendLine(tb + tb + "    {");
            objCodigo.AppendLine(tb + tb + "        #region Validações e regras específicas para essa operação");
            objCodigo.AppendLine(tb + tb + "        //if (string.IsNullOrEmpty(Convert.ToString(tab.Descricao)))");
            objCodigo.AppendLine(tb + tb + "        //{");
            objCodigo.AppendLine(tb + tb + "        //    ModelState.AddModelError(\"Descricao\", \"Informe uma descrição!\");");
            objCodigo.AppendLine(tb + tb + "        //}");
            objCodigo.AppendLine(tb + tb + "        #endregion");
            objCodigo.AppendLine(tb + tb + "        ");
            objCodigo.AppendLine(tb + tb + "        if (!ModelState.IsValid)");
            objCodigo.AppendLine(tb + tb + "            return Create();");
            objCodigo.AppendLine("");
            objCodigo.AppendLine(tb + tb + "tab." + objDr.GetName(0) + " = Guid.NewGuid();");
            objCodigo.AppendLine("");
            objCodigo.AppendLine(tb + tb + "        #region modelo anterior");
            objCodigo.AppendLine(tb + tb + tb + "//" + objetoDTOAtual + " " + tabelaMinusculo + " = new " + objetoDTOAtual + "();");


            for (int i = 0; i < nunrec; i++)
            {
                //string colunaAtual = objDr.GetName(i).ToString();
                //string tipo = objLib.DefineTipo(objDr.GetDataTypeName(i).ToString());
                //colunaPrimaria = objDr.GetName(0).ToString();
                //// lista as colunas
                //if (objDr.GetName(i).ToString() == objDr.GetName(0).ToString() && objLib.DefineTipo(objDr.GetDataTypeName(0).ToString()) == "Guid")//se for a 1º linha
                //    objCodigo.AppendLine(tb + tb + tb + "" + tabelaMinusculo + "." + colunaAtual + " = Guid.NewGuid();");
                //else
                //    objCodigo.AppendLine(tb + tb + tb + "" + tabelaMinusculo + "." + colunaAtual + " = " + objLib.RetornaConvertCollectionsForm(colunaAtual, tipo) + ";");

                colunaPrimaria = objDr.GetName(0);
                string tipo        = objDr.GetDataTypeName(i);
                string colunaAtual = objDr.GetName(i).ToString();
                // lista as colunas
                if (objDr.GetName(i) == objDr.GetName(0))
                {
                    //se for a 1º linha
                    if (objLib.DefineTipo(objDr.GetDataTypeName(0).ToString()) == "Guid")
                    {
                        objCodigo.AppendLine(tb + tb + tb + "//" + tabelaMinusculo + "." + colunaAtual + " = Guid.NewGuid();");
                    }
                    else if (objLib.DefineTipo(objDr.GetDataTypeName(0).ToString()) == "string")
                    {
                        objCodigo.AppendLine(tb + tb + tb + "//" + tabelaMinusculo + "." + colunaAtual + " = id;");
                    }
                    else
                    {
                        objCodigo.AppendLine(tb + tb + tb + "//" + tabelaMinusculo + "." + colunaAtual + " = " + objLib.RetornaConvertCollectionsForm(colunaAtual, tipo) + ";");
                    }
                }
                else
                {
                    objCodigo.AppendLine(tb + tb + tb + "//" + tabelaMinusculo + "." + colunaAtual + " = " + objLib.RetornaConvertCollectionsForm(colunaAtual, tipo) + ";");
                }
            }
            objCodigo.AppendLine(tb + tb + "        #endregion");
            objCodigo.AppendLine("");

            objCodigo.AppendLine(tb + tb + tb + "        int retorno = " + tabelaMinusculoBO + ".Insert(tab);");
            objCodigo.AppendLine(tb + tb + tb + "        if (retorno == 1)");
            objCodigo.AppendLine(tb + tb + tb + "            return RedirectToAction(\"Details\", new { id = tab." + colunaPrimaria + " });");
            objCodigo.AppendLine(tb + tb + tb + "        else");
            objCodigo.AppendLine(tb + tb + tb + "            {");
            objCodigo.AppendLine(tb + tb + tb + "               //Ocorreu algum erro.....");
            objCodigo.AppendLine(tb + tb + tb + "               ModelState.AddModelError(\"\", \"Ocorreu algum erro no procedimento atual. Se o problema persistir procure o administrador do sistema.\");");
            objCodigo.AppendLine(tb + tb + tb + "               return Create();");
            objCodigo.AppendLine(tb + tb + tb + "            }");
            objCodigo.AppendLine(tb + tb + "    }");
            objCodigo.AppendLine(tb + tb + "    catch (Exception ex)");
            objCodigo.AppendLine(tb + tb + "    {");
            objCodigo.AppendLine(tb + tb + "        ModelState.AddModelError(\"\", ex.Message);");
            objCodigo.AppendLine(tb + tb + "        return Create();");
            objCodigo.AppendLine(tb + tb + "    }");
            objCodigo.AppendLine(tb + tb + "}");
            objCodigo.AppendLine();

            // Fecha conexão
            objBanco.CloseConn();
            objBanco = null;

            #endregion


            #region Edit
            // Abre conexão
            objBanco = new Banco.Banco(_conexao);
            // Faz a leitura de todas as colunas da tabela
            objDr  = objBanco.QueryConsulta("SELECT * FROM " + strTabela);
            nunrec = objDr.FieldCount;
            // objeto da classe Libary
            objLib = new Library.Library();

            objCodigo.AppendLine(tb + "// GET: " + tabelaFormatada + "/Edit/5");
            objCodigo.AppendLine(tb + "public ActionResult Edit(string id)");
            objCodigo.AppendLine(tb + "{");
            objCodigo.AppendLine(tb + tb + "List<" + objetoDTOAtual + "> listaRetornada = " + tabelaMinusculoBO + ".FindAllLista(string.Format(\"" + objDr.GetName(0) + " = '{0}'\", id)).ToList();");
            objCodigo.AppendLine("");
            objCodigo.AppendLine(tb + tb + "if (listaRetornada.Count() > 0)");
            objCodigo.AppendLine(tb + tb + "{");
            //List<string> ColunasRelacionadasForengKey = RetornaColunasRelacionadasForengKey(nomeTabela: strTabela, conexao: _conexao); List<string> ColunasRelacionadasForengKey = RetornaColunasRelacionadasForengKey(nomeTabela: strTabela, conexao: _conexao);
            //List<string> ColunasReferenciadas = RetornaColunasReferenciadas(nomeTabela: strTabela, conexao: _conexao);
            //List<string> TabelaReferenciada = RetornaTabelaReferenciadas(nomeTabela: strTabela, conexao: _conexao);
            for (int i = 0; i < ColunasRelacionadasForengKey.Count; i++)
            {
                objCodigo.AppendLine(tb + tb + "ViewBag." + ColunasRelacionadasForengKey[i] + " = new SelectList(new " + TabelaReferenciada[i] + "BO<Tab" + TabelaReferenciada[i] + ">().FindAllLista(), \"" + ColunasReferenciadas[0] + "\", \"Descricao\");");
            }
            objCodigo.AppendLine(tb + tb + "    return View(listaRetornada[0]);");
            objCodigo.AppendLine(tb + tb + "}");
            objCodigo.AppendLine(tb + tb + "else");
            objCodigo.AppendLine(tb + tb + "{");
            objCodigo.AppendLine(tb + tb + "    //Não retornou nenhum registro");
            objCodigo.AppendLine(tb + tb + "    return RedirectToAction(\"Index\");");
            objCodigo.AppendLine(tb + tb + "}");
            objCodigo.AppendLine(tb + "}");
            objCodigo.AppendLine();

            // Fecha conexão
            objBanco.CloseConn();
            objBanco = null;
            #endregion


            #region Edit
            // Abre conexão
            objBanco = new Banco.Banco(_conexao);
            // Faz a leitura de todas as colunas da tabela
            objDr  = objBanco.QueryConsulta("SELECT * FROM " + strTabela);
            nunrec = objDr.FieldCount;
            // objeto da classe Libary
            objLib = new Library.Library();

            objCodigo.AppendLine(tb + "// POST: " + tabelaFormatada + "/Edit/5");
            objCodigo.AppendLine(tb + "[HttpPost]");
            if (nunrec > 0)
            {
                string tipoParametro = objLib.DefineTipo(objDr.GetDataTypeName(0).ToString());
                tipoParametro = tipoParametro == "Guid" || tipoParametro == "string" ? "string" : "int";
                objCodigo.AppendLine(tb + "public ActionResult Edit(" + tipoParametro + " id, " + objetoDTOAtual + " tab)");
            }
            objCodigo.AppendLine(tb + "{");
            objCodigo.AppendLine(tb + tb + "    try");
            objCodigo.AppendLine(tb + tb + "    {");
            objCodigo.AppendLine(tb + tb + "        #region Validações e regras específicas para essa operação");
            objCodigo.AppendLine(tb + tb + "        //if (string.IsNullOrEmpty(Convert.ToString(tab.Descricao)))");
            objCodigo.AppendLine(tb + tb + "        //{");
            objCodigo.AppendLine(tb + tb + "        //    ModelState.AddModelError(\"Descricao\", \"Informe uma descrição!\");");
            objCodigo.AppendLine(tb + tb + "        //}");
            objCodigo.AppendLine(tb + tb + "        #endregion");
            objCodigo.AppendLine(tb + tb + "        ");
            objCodigo.AppendLine(tb + tb + "        if (!ModelState.IsValid)");
            objCodigo.AppendLine(tb + tb + "            return Edit(id);");
            objCodigo.AppendLine("");
            objCodigo.AppendLine("tab." + objDr.GetName(0) + " = new Guid(id);");
            objCodigo.AppendLine("#region modelo anterior");
            objCodigo.AppendLine(tb + tb + tb + "//" + objetoDTOAtual + " " + tabelaMinusculo + " = new " + objetoDTOAtual + "();");

            for (int i = 0; i < nunrec; i++)
            {
                colunaPrimaria = objDr.GetName(0);
                string tipo        = objDr.GetDataTypeName(i);
                string colunaAtual = objDr.GetName(i).ToString();
                // lista as colunas
                if (objDr.GetName(i) == objDr.GetName(0))
                {
                    //se for a 1º linha
                    if (objLib.DefineTipo(objDr.GetDataTypeName(0).ToString()) == "Guid")
                    {
                        objCodigo.AppendLine(tb + tb + tb + "//" + tabelaMinusculo + "." + colunaAtual + " = new Guid(id);");
                    }
                    else if (objLib.DefineTipo(objDr.GetDataTypeName(0).ToString()) == "string")
                    {
                        objCodigo.AppendLine(tb + tb + tb + "//" + tabelaMinusculo + "." + colunaAtual + " = id;");
                    }
                    else
                    {
                        objCodigo.AppendLine(tb + tb + tb + "//" + tabelaMinusculo + "." + colunaAtual + " = " + objLib.RetornaConvertCollectionsForm(colunaAtual, tipo) + ";");
                    }
                }
                else
                {
                    objCodigo.AppendLine(tb + tb + tb + "//" + tabelaMinusculo + "." + colunaAtual + " = " + objLib.RetornaConvertCollectionsForm(colunaAtual, tipo) + ";");
                }
            }
            objCodigo.AppendLine("#endregion");
            objCodigo.AppendLine(tb + tb + tb + "        int retorno = " + tabelaMinusculoBO + ".Update(tab);");
            objCodigo.AppendLine(tb + tb + tb + "        if (retorno == 1)");
            objCodigo.AppendLine(tb + tb + tb + "            return RedirectToAction(\"Details\", new { id = tab." + colunaPrimaria + " });");
            objCodigo.AppendLine(tb + tb + tb + "        else");
            objCodigo.AppendLine(tb + tb + tb + "            {");
            objCodigo.AppendLine(tb + tb + tb + "            //Ocorreu algum erro.....");
            objCodigo.AppendLine(tb + tb + tb + "            ModelState.AddModelError(\"\", \"Ocorreu algum erro no procedimento atual. Se o problema persistir procure o administrador do sistema.\");");
            objCodigo.AppendLine(tb + tb + tb + "            return Edit(id);");
            objCodigo.AppendLine(tb + tb + tb + "            }");
            objCodigo.AppendLine(tb + tb + "    }");
            objCodigo.AppendLine(tb + tb + "    catch (Exception ex)");
            objCodigo.AppendLine(tb + tb + "    {");
            objCodigo.AppendLine(tb + tb + "        ModelState.AddModelError(\"\", ex.Message);");
            objCodigo.AppendLine(tb + tb + "        return Edit(id);");
            objCodigo.AppendLine(tb + tb + "    }");
            objCodigo.AppendLine(tb + "}");
            objCodigo.AppendLine();

            // Fecha conexão
            objBanco.CloseConn();
            objBanco = null;
            #endregion


            #region Delete
            // Abre conexão
            objBanco = new Banco.Banco(_conexao);
            // Faz a leitura de todas as colunas da tabela
            objDr  = objBanco.QueryConsulta("SELECT * FROM " + strTabela);
            nunrec = objDr.FieldCount;
            // objeto da classe Libary
            objLib = new Library.Library();

            objCodigo.AppendLine(tb + "// GET: " + tabelaFormatada + "/Delete/5");
            if (nunrec > 0)
            {
                string tipoParametro = objLib.DefineTipo(objDr.GetDataTypeName(0).ToString());
                tipoParametro = tipoParametro == "Guid" || tipoParametro == "string" ? "string" : "int";
                objCodigo.AppendLine(tb + "public ActionResult Delete(" + tipoParametro + " id)");
            }
            objCodigo.AppendLine(tb + "{");
            objCodigo.AppendLine(tb + tb + "try");
            objCodigo.AppendLine(tb + tb + "{");
            objCodigo.AppendLine(tb + tb + tb + "List<" + objetoDTOAtual + "> listaRetornada = this." + tabelaMinusculoBO + ".FindAllLista(string.Format(\"" + objDr.GetName(0) + " = '{0}'\", id)).Take(1).ToList();");
            objCodigo.AppendLine("");
            objCodigo.AppendLine(tb + tb + tb + "if (listaRetornada.Count > 0)");
            objCodigo.AppendLine(tb + tb + tb + "{");
            objCodigo.AppendLine(tb + tb + tb + tb + "int retorno = this." + tabelaMinusculoBO + ".Delete(listaRetornada[0]);");
            objCodigo.AppendLine(tb + tb + tb + tb + "if (retorno == 0)");
            objCodigo.AppendLine(tb + tb + tb + tb + "{");
            objCodigo.AppendLine(tb + tb + tb + tb + tb + "//Ocorreu algum erro.....");
            objCodigo.AppendLine(tb + tb + tb + tb + tb + "return RedirectToAction(\"Index\");");
            objCodigo.AppendLine(tb + tb + tb + tb + "}");
            objCodigo.AppendLine(tb + tb + tb + "}");
            objCodigo.AppendLine(tb + tb + tb + "//Não retornou nenhum registro");
            objCodigo.AppendLine(tb + tb + tb + "return RedirectToAction(\"Index\");");
            objCodigo.AppendLine(tb + tb + "}");
            objCodigo.AppendLine(tb + tb + "catch");
            objCodigo.AppendLine(tb + tb + "{");
            objCodigo.AppendLine(tb + tb + tb + "return RedirectToAction(\"Index\");");
            objCodigo.AppendLine(tb + tb + "}");
            objCodigo.AppendLine(tb + "}");
            objCodigo.AppendLine();

            // Fecha conexão
            objBanco.CloseConn();
            objBanco = null;
            #endregion


            objCodigo.AppendLine(tb + "}");

            objCodigo.AppendLine("}");

            return(objCodigo);
        }