Example #1
0
        public int ExecuteNoQuery(string SQL, bool fecharConexao = true)
        {
            Dbo dbo = getDbo();

            return(Dbo.ExecuteNoQuery(SQL, fecharConexao));
        }
Example #2
0
        public int Salvar(object Objeto, string CampoChave, string Inicial, bool ForcarInsert = false)
        {
            Dbo conec   = new Dbo();
            int retorno = 0;

            try
            {
                String NomeObjeto = Objeto.GetType().Name;
                string NomeTabela = Inicial + NomeObjeto.Replace(Inicial, "");

                var    propriedades = Objeto.GetType().GetProperties();
                string ValorChave   = "";

                foreach (var propriedade in propriedades)
                {
                    if (propriedade.Name.ToUpper() == CampoChave.ToUpper())
                    {
                        ValorChave = propriedade.GetValue(Objeto, null).ToString();
                        break;
                    }
                }

                DataTable dados = conec.Select("Select * from " + NomeTabela + " Where " + CampoChave + "='" + ValorChave + "'");

                string        SQLGravar    = "";
                List <string> ListaColunas = new List <string>();
                List <string> ListaDados   = new List <string>();
                bool          Insert;

                if (dados.Rows.Count > 0)
                {
                    Insert = false;

                    if (ForcarInsert)
                    {
                        Insert = true;
                    }
                }
                else
                {
                    Insert = true;
                }

                if (dados.Columns.Count > 0)
                {
                    for (int x = 0; x < dados.Columns.Count; x++)
                    {
                        foreach (var propriedade in propriedades)
                        {
                            if (propriedade.Name.ToUpper() == dados.Columns[x].ColumnName.ToUpper())
                            {
                                ListaColunas.Add(propriedade.Name.ToUpper());
                                string DadoObjeto = "";

                                if ((propriedade.GetValue(Objeto, null) != null))
                                {
                                    DadoObjeto = propriedade.GetValue(Objeto, null).ToString();
                                }
                                if (propriedade.PropertyType.FullName.IndexOf("DateTime") > -1)
                                {
                                    if (!DadoObjeto.Contains(DateTime.MinValue.ToString()))
                                    {
                                        ListaDados.Add((DadoObjeto == "" ? "NULL" : "convert(datetime, '" + DateTime.Parse(DadoObjeto).ToString("dd/MM/yyyy HH:mm:ss") + "' , 103)"));
                                    }
                                    else
                                    {
                                        ListaDados.Add("NULL");
                                    }
                                }
                                else
                                {
                                    if (propriedade.PropertyType.FullName.ToLower().IndexOf("decimal") > -1 || propriedade.PropertyType.FullName.ToLower().IndexOf("double") > -1)
                                    {
                                        ListaDados.Add((DadoObjeto == "" ? "NULL" : "'" + DadoObjeto.Replace(".", "").Replace(",", ".") + "'"));
                                    }
                                    else
                                    {
                                        ListaDados.Add((DadoObjeto == "" ? "NULL" : "'" + DadoObjeto + "'"));
                                    }
                                }

                                break;
                            }

                            //propriedade.Name;                pra pegar o nome dela
                            //propriedade.PropertyType;     pra pegar o tipo
                            //propriedade.SetValue(...);    pra setar um valor
                            //propriedade.GetValue(...);    pra ler um valor
                        }
                    }


                    if (Insert)
                    {
                        SQLGravar = "Insert into " + NomeTabela + "(";
                        string Colunas  = "";
                        string strDados = "";

                        for (int x = 0; x < ListaColunas.Count; x++)
                        {
                            if (CampoChave.ToUpper() != ListaColunas[x])
                            {
                                Colunas += (Colunas == "" ? "" + ListaColunas[x] + "" : "," + ListaColunas[x] + "");
                            }
                        }

                        for (int x = 0; x < ListaDados.Count; x++)
                        {
                            if (CampoChave.ToUpper() != ListaColunas[x])
                            {
                                strDados += (strDados == "" ? "" + ListaDados[x] + "" : "," + ListaDados[x] + "");
                            }
                        }
                        SQLGravar += Colunas + ") Values (" + strDados + ")";
                    }
                    else
                    {
                        SQLGravar = "update  " + NomeTabela + " set ";

                        string Colunas = "";


                        for (int x = 0; x < ListaColunas.Count; x++)
                        {
                            if (CampoChave.ToUpper() != ListaColunas[x])
                            {
                                Colunas += (Colunas == "" ? ListaColunas[x] + "=" + ListaDados[x] + "" : "," + ListaColunas[x] + "=" + ListaDados[x] + "");
                            }
                        }

                        SQLGravar += Colunas + " Where " + CampoChave + "='" + ValorChave + "'";
                    }

                    retorno = conec.ExecuteNoQuery(SQLGravar, true);

                    //if (Insert)
                    //{
                    //    int ID =  PegarIdentidade(this.MsSQl, NomeTabela);

                    //    foreach (var propriedade in propriedades)
                    //    {
                    //        if (propriedade.Name.ToUpper() == CampoChave.ToUpper())
                    //        {
                    //            propriedade.SetValue(Objeto, ID, null);
                    //            break;
                    //        }
                    //    }

                    //    if (MsSQl.State != ConnectionState.Closed)
                    //    {
                    //        MsSQl.Close();
                    //        MsSQl.Dispose();
                    //    }

                    //}
                    //else
                    //{
                    //    if (MsSQl.State != ConnectionState.Closed)
                    //    {
                    //        MsSQl.Close();
                    //        MsSQl.Dispose();
                    //    }
                    //}
                }
            }
            catch (Exception ex)
            {
                //if (MsSQl != null && MsSQl.State != ConnectionState.Closed)
                //{
                //    MsSQl.Close();
                //    MsSQl.Dispose();
                //}

                throw new Exception(ex.Message);
            }
            return(retorno);
        }