public void ExecuteSql(string nomeDoMetodo = null, bool zerarQuery = true) { try { if (G1.Nada(Cmd.CommandText)) { Cmd.CommandText = Convert.ToString(query); } Cmd.ExecuteNonQuery(); Cmd.CommandText = null; if (query != null && zerarQuery) { query.Clear(); } } catch (Exception e) { Cmd.CommandText = null; query = null; if (!G1.Nada(nomeDoMetodo) && nomeDoMetodo.IndexOf(".AtualizaTabela") < 0) { throw new Exception(nomeDoMetodo + " - " + e.Message, e.InnerException); //exceção será disparada somente para os comandos DML (Insert,Update,Delete e Select) } } }
public string StrLike(string valor, bool semAcento = false) { try { return($"'%{(semAcento ? G1.RemoveAcentos(valor) : valor.Replace("'", "")).Replace("%", "")}%'"); } catch { return("NULL"); } }
/// <summary>michele, 25/06/2014 - Monta o StringBuider(query) de acordo com o parametro trecho. /// Para criar uma nova instância, defina o parâmetro novo com true</summary> public void Query(string trecho = null, bool novo = false) { if (query == null || novo) { query = new StringBuilder(); } if (!G1.Nada(trecho)) { query.Append(trecho); } }
/// <summary>coloca '' para montar o parâmetro quando for varchar, facilitando a montagem da query</summary> public string Str(string valor = "", bool semAcento = false) { try { if (G1.Nada(valor)) { return("NULL"); } return($"'{(semAcento ? G1.RemoveAcentos(valor) : valor.Replace("'", ""))}'"); } catch { return("NULL"); } }
//Verifica Atraso public bool EmAtraso(Locacao loc, string conString) { try { using (Conexao c = new Conexao(conString)) { c.Query($"Select count(*) From Locacao Where Id = {loc.Id} And Status = 0 And Convert(Date,DtDevolucao,120) < convert(date,getdate(),120)"); return(G1.GetInt(c.DtSql().Rows[0][0]) > 0); } } catch (Exception e) { throw new Exception("Erro Locação em Atraso\n" + e.Message); } }
/// <summary>retorna a data no formato inglês americano, sem separadores, para utilizar em querys do sqlserver. Caso tenha qualwuer falha, retorna NULL</summary> public string Data(DateTime data) { try { if (!G1.IsDate(data)) { return("NULL"); } StringBuilder s = new StringBuilder(Convert.ToString(data.Year)); s.Append(G1.NumeroMes(data)); s.Append(G1.DiaDoMes(data)); s.Append(" "); s.Append(G1.HoraDoDia(data)); return($"'{Convert.ToString(s)}'"); } catch { return("NULL"); } }
/// <summary>michele, 18/08/2015 - retorna o texto sem acentos</summary> public static string RemoveAcentos(string text = null) { if (G1.Nada(text)) { return(""); } StringBuilder s = new StringBuilder(); var arrayText = text.Normalize(NormalizationForm.FormD).ToCharArray(); foreach (char letter in arrayText) { if (CharUnicodeInfo.GetUnicodeCategory(letter) != UnicodeCategory.NonSpacingMark) { s.Append(letter); } } return(Convert.ToString(s).Replace("’", "").Replace("'", "").Replace("–", "").Replace("'", "").Replace("Ç", "C").Replace("ç", "c").Replace("à", "a").Replace("À", "A").Replace("º", "").Replace("ª", "").Replace(" - ", "").Replace("-", "").Trim()); }
public List <Cliente> Listar(Cliente cli, string conString) { List <Cliente> lista = new List <Cliente>(); DataTable d; using (Conexao c = new Conexao(conString)) { c.Query("Select Id,Nome,Cpf From Cliente"); c.Query(cli.Id > 0 ? c.WhereAnd($"Id = {cli.Id}") : ""); c.Query(!G1.Nada(cli.Nome) ? c.WhereAnd($"Nome Like {c.StrLike(cli.Nome)}") : ""); c.Query(!G1.Nada(cli.Cpf) ? c.WhereAnd($"Cpf = {c.Str(cli.Cpf)}") : ""); d = c.DtSql(); } if (G1.DtOk(d)) { lista = JsonConvert.DeserializeObject <List <Cliente> >(G1.DtToJson(d), G1.CfJson()); } return(lista); }
public List <ItensLocacao> Listar(ItensLocacao iloc, string conString) { List <ItensLocacao> lista = new List <ItensLocacao>(); DataTable d; using (Conexao c = new Conexao(conString)) { c.Query("Select IdItem, IdLocacao, Status, IdFilme From ItensLocacao"); c.Query(iloc.IdItem > 0 ? c.WhereAnd($"IdItem = {iloc.IdItem}") : ""); c.Query(!G1.Nada(iloc.IdLocacao) ? c.WhereAnd($"IdLocacao Like {(iloc.IdLocacao)}") : ""); c.Query(!G1.Nada(iloc.Status) ? c.WhereAnd($"Status Like {(iloc.Status)}") : ""); c.Query(!G1.Nada(iloc.IdFilme) ? c.WhereAnd($"IdFilme = {(iloc.IdFilme)}") : ""); d = c.DtSql(); } if (G1.DtOk(d)) { lista = JsonConvert.DeserializeObject <List <ItensLocacao> >(G1.DtToJson(d), G1.CfJson()); } return(lista); }
public List <Filmes> Listar(Filmes film, string conString) { List <Filmes> lista = new List <Filmes>(); DataTable d; using (Conexao c = new Conexao(conString)) { c.Query("Select Id,Titulo,Genero, Status From Filmes"); c.Query(film.Id > 0 ? c.WhereAnd($"Id = {film.Id}") : ""); c.Query(!G1.Nada(film.Titulo) ? c.WhereAnd($"Titulo Like {c.StrLike(film.Titulo)}") : ""); c.Query(!G1.Nada(film.Genero) ? c.WhereAnd($"Genero = {c.Str(film.Genero)}") : ""); c.Query(!G1.Nada(film.Status) ? c.WhereAnd($"Status = {film.Status}") : ""); d = c.DtSql(); } if (G1.DtOk(d)) { lista = JsonConvert.DeserializeObject <List <Filmes> >(G1.DtToJson(d), G1.CfJson()); } return(lista); }
/// <summary>michele, 25/06/2014 - Facilita na criação de parâmetros para montar as Querys /// O parâmetro "trechoQuery" é opcional, mas se informado, cria o parâmetro e o trecho da Query que irá utilizá-lo</summary> public void Param(string parametro, object valor, string trechoQuery = null) { try { if (Cmd.Parameters.IndexOf(parametro) >= 0) { Cmd.Parameters.RemoveAt(parametro); //caso já exista, será removido para evitar erros } if (valor == null) { valor = (string)string.Empty; } if (valor is bool) { valor = Convert.ToInt16(valor); } if (valor is DateTime) { if (!G1.IsDate(valor)) { valor = DBNull.Value; } else { valor = new DateTime (Convert.ToDateTime(valor).Year, Convert.ToDateTime(valor).Month, Convert.ToDateTime(valor).Day, Convert.ToDateTime(valor).Hour, Convert.ToDateTime(valor).Minute, Convert.ToDateTime(valor).Second); } } Cmd.Parameters.AddWithValue(parametro, valor); if (!G1.Nada(trechoQuery)) { Query(trechoQuery); } } catch (Exception e) { throw e; } }
public List <Locacao> Listar(Locacao loc, string conString) { List <Locacao> lista = new List <Locacao>(); DataTable d; using (Conexao c = new Conexao(conString)) { c.Query("Select Id, Status, IdCliente, DtLocacao, DtDevolucao From Locacao"); c.Query(loc.Id > 0 ? c.WhereAnd($"Id = {loc.Id}") : ""); c.Query(loc.Status > 0 ? c.WhereAnd($"Status = {loc.Status}") : ""); c.Query(loc.IdCliente > 0 ? c.WhereAnd($"IdCliente = {loc.IdCliente}") : ""); c.Query(G1.IsDate(loc.DtLocacao) ? c.WhereAnd($"DtLocacao = {c.Data(loc.DtLocacao)}") : ""); c.Query(G1.IsDate(loc.DtDevolucao) ? c.WhereAnd($"DtDevolucao = {c.Data(loc.DtDevolucao)}") : ""); d = c.DtSql(); } if (G1.DtOk(d)) { lista = JsonConvert.DeserializeObject <List <Locacao> >(G1.DtToJson(d), G1.CfJson()); } return(lista); }
public int InsertReturnId(string nomeDoMetodo = null) { try { query.Append(";Select SCOPE_IDENTITY()"); Cmd.CommandText = Convert.ToString(query); SqlDataAdapter sqlAdapter = new SqlDataAdapter(Cmd); DataTable d = new DataTable(); d.BeginLoadData(); sqlAdapter.Fill(d); d.EndLoadData(); Cmd.CommandText = null; query.Clear(); return(G1.GetInt(d.Rows[0][0])); } catch (Exception e) { Cmd.CommandText = null; query = null; throw new Exception(nomeDoMetodo + " - " + e.Message, e.InnerException); } }
public bool RegistroExiste(string nomeTabela, string nomeColuna = null, object valor = null, string nomeColuna2 = null, object valor2 = null, string nomeColuna3 = null, object valor3 = null) { try { bool existe = false; Query("Select Count(*) as Existe From ", true); Query(nomeTabela); if (!G1.Nada(nomeColuna) && !G1.Nada(Convert.ToString(valor))) { Param("@v", valor); Query($" Where {nomeColuna} = @v "); if (!G1.Nada(nomeColuna2) && !G1.Nada(Convert.ToString(valor2))) { Param("@v2", valor2); Query($" And {(nomeColuna2)} = @v2 "); if (!G1.Nada(nomeColuna3) && !G1.Nada(Convert.ToString(valor3))) { Param("@v3", valor3); Query($" And {nomeColuna3} = @v3"); } } } Cmd.CommandText = Convert.ToString(query); SqlDataReader dr = Cmd.ExecuteReader(); if (dr.Read()) { existe = G1.GetBool(dr["Existe"]); } dr.Close(); dr.Dispose(); Cmd.CommandText = null; query.Clear(); return(existe); } catch (Exception e) { throw e; } }
/// <summary>michele, 14/12/2014 - coloca where ou and na query, ignorando as ocorrencias do where que podem ter havido na subquery</summary> public string WhereAndSubQuery(string trechoQuery = null) { StringBuilder whereAnd = new StringBuilder(); string queryCompleta = Convert.ToString(query); int indiceUltimaSubQuery = queryCompleta.LastIndexOf(")"); string queryIni = G1.GetSubstringLeft(queryCompleta, indiceUltimaSubQuery); string queryFim = queryCompleta.Replace(queryIni, ""); if (queryFim.ToUpper().IndexOf(" WHERE ") < 0) { whereAnd.Append(" Where "); } else { whereAnd.Append(" And "); } if (trechoQuery != null) { whereAnd.Append(trechoQuery); //concatena o trecho da query } whereAnd.Append(" "); //coloca espaço no final da expressão para evitar erros return(Convert.ToString(whereAnd)); }
/// <summary>michele, 01/06/2014 - retorna um número inteiro</summary> public static int GetInt(object valor, bool isNullRetorna1Negativo = false) { try { if (G1.Nada(valor)) { return(isNullRetorna1Negativo ? -1 : 0); } int numero = 0; var tipo = valor.GetType().ToString().ToLower().Replace("system.", ""); if (tipo == "dbnull") { return(0); } if (valor is bool || tipo == "int16") { numero = Convert.ToInt16(valor); } else if (tipo == "int32" || tipo == "int64" || tipo == "double" || tipo == "decimal" || tipo == "float") { numero = Convert.ToInt32(valor); } else if (tipo == "string") { string v = Convert.ToString(valor).ToLower(); if (Nada(v)) { if (isNullRetorna1Negativo) { return(-1); } else { return(0); } } if (v == "sim" || v == "s" || v == "ativo" || v == "true") { return(1); } else if (v == "não" || v == "n" || v == "inativo" || v == "false") { return(0); } else { numero = int.Parse(valor.ToString()); } } //if (numero is int) numero = int.Parse(valor.ToString()); if (numero >= -32768 && numero <= 32767) { return(Convert.ToInt16(numero)); } else { return(Convert.ToInt32(numero)); } //return numero; } catch (Exception) { return(0);//retorna 0 se algo der errado na conversão } }