public List <FAKategorie> GetFAKategorieByQueryData(FAKategorieQueryData queryData) { List <FAKategorie> wrkList = new List <FAKategorie>(); // Durch das ständig anders aussehende SQL-Statement wird in diesem Fall von einem vorgefertigten // Prepared-Statement wie in den anderen Fällen abgesehen und das DbCommand jedesmal neu, // entsprechend den queryData erstellt. using (DbCommand cmd = myRepoFactory.CreateCommand()) { cmd.CommandText = "select * from FAKategorie k1 "; if (queryData != null) { List <string> whereClauses = new List <string>(); if (!string.IsNullOrWhiteSpace(queryData.FAKennzeichenEA)) { whereClauses.Add("FAKennzeichenEA = @FAKennzeichenEA"); cmd.AddCmdParameter(DbType.String, ParameterDirection.Input, "@FAKennzeichenEA", queryData.FAKennzeichenEA, size: 1, precision: null, scale: null); } if (queryData.GueltFuerJahr != null) { whereClauses.Add("FAJahrGueltigAb = (select top 1 FAJahrGueltigAb " + " from FAKategorie k2 " + " where FAJahrGueltigAb <= @FAJahrGueltigAb " + " order by FAJahrGueltigAb desc) "); cmd.AddCmdParameter(DbType.Int32, ParameterDirection.Input, "@FAJahrGueltigAb", queryData.GueltFuerJahr, null, 4, 0); } string whereClause = string.Empty; whereClauses.ForEach((w) => { if (string.IsNullOrWhiteSpace(whereClause)) { whereClause += " where " + w + " "; } else { whereClause += " and " + w + " "; } }); cmd.CommandText += whereClause; } cmd.Prepare(); using (DbDataReader dbDr = cmd.ExecuteReader()) { while (dbDr.Read()) { FAKategorie faKat = new FAKategorie(); faKat.FillEntityWithDataReader(dbDr); wrkList.Add(faKat); } } } return(wrkList); }
public List <Bankkontobewegung> GetBankkontobewegungByQueryData(BankkontobewegungQueryData qryDta) { List <Bankkontobewegung> resultList = new List <Bankkontobewegung>(); List <string> whereClauses = new List <string>(); using (DbCommand cmd = myRepoFactory.CreateCommand()) { cmd.CommandText = "select * from Bankkontobewegung "; if (qryDta.VonValutaDatum != null && ((DateTime)qryDta.VonValutaDatum) > new DateTime(1950, 01, 01)) { whereClauses.Add("Valutadatum >= @VonValutaDatum"); cmd.AddCmdParameter(typeof(DateTime), ParameterDirection.Input, "@VonValutaDatum", (DateTime)qryDta.VonValutaDatum); } if (qryDta.BisValutaDatum != null && ((DateTime)qryDta.BisValutaDatum) < new DateTime(3000, 01, 01)) { whereClauses.Add("Valutadatum <= @BisValutaDatum"); cmd.AddCmdParameter(typeof(DateTime), ParameterDirection.Input, "@BisValutaDatum", (DateTime)qryDta.BisValutaDatum); } if (qryDta.KontoId != null && (int)qryDta.KontoId > 0) { whereClauses.Add("KontoID = @KontoId"); cmd.AddCmdParameter(typeof(int), ParameterDirection.Input, "@KontoId", (int)qryDta.KontoId); } if (!qryDta.VerbuchteInkludieren) { whereClauses.Add("FiBuVerbucht is Null"); } cmd.CommandText += whereClauses.Count > 0 ? " where " : ""; for (int i = 0; i < whereClauses.Count; i++) { cmd.CommandText += whereClauses[i]; cmd.CommandText += i < whereClauses.Count - 1 ? " and " : ""; } cmd.Prepare(); using (DbDataReader dbDr = cmd.ExecuteReader()) { while (dbDr.Read()) { Bankkontobewegung bew = new Bankkontobewegung(); bew.FillEntityWithDataReader(dbDr); resultList.Add(bew); } } } return(resultList); }
private List <string> genereateConditions(BelegQueryData queryData, DbCommand cmd) { List <string> cond = new List <string>(); if (queryData.VonDatum != null) { string par = "@VonDatum"; cond.Add(string.Format("BelegDatum >= {0}", par)); cmd.AddCmdParameter(typeof(DateTime), ParameterDirection.Input, par, (DateTime)queryData.VonDatum); } if (queryData.BisDatum != null) { string par = "@BisDatum"; cond.Add(string.Format("BelegDatum <= {0}", par)); cmd.AddCmdParameter(typeof(DateTime), ParameterDirection.Input, par, (DateTime)queryData.BisDatum); } if (!string.IsNullOrWhiteSpace(queryData.BelegnummerIntern)) { string par = "@BelegnummerIntern"; cond.Add(string.Format("BelegnummerIntern = {0}", par)); cmd.AddCmdParameter(typeof(string), ParameterDirection.Input, par, queryData.BelegnummerIntern); } return(cond); }