====== Generischer Select auf einer beliebigen DB Tabelle ====== Beispielcode für: * Wago.Ebiss.MapFn.DbSelect(, , , ) Für die DB Verbindung wird der Connection String aus der Variable **Db.MapFunction.Connection** vom Standardsystempartner verwendet. Beispielaufruf: * MyCompanyName.Ebiss.DbSelect("Document", "DocType", "DocNumber", "01-4673848") Referenzierte Assemblies: eBiss.Api.dll und Pranke.Orm.TypeLib.dll using eBiss.Api; using eBiss.Api.Data; using Pranke.Orm.Interfaces; using System; using System.Collections; namespace MyCompanyName.Ebiss { public class MapFn : IMapFunctionExtender, ILoggingObject, IApplicationConsumer, ISystemVariableConsumer { private static string Db_Connection_Variable = "Db.MapFunction.Connection"; public ILogContext Log { get; set; } public IApplication Application { get; set; } public IDictionary Variables { get; set; } // Wago.Ebiss.MapFn.DbSelect("Document", "DocType", "DocNumber", "01-4673848") [eBiss.Api.MappingFunction] public object DbSelect(string table, string colunn, string selectOnColumn, string selectValue) { string rv = ""; using (Log.EnterScope($"Execute MapFn.DbSelect on talbe {table}")) { try { Pranke.Orm.Interfaces.IEntities entities = Pranke.Orm.EntitiesBase.Connect(Pranke.Orm.DatabaseType.MsSql, GetDbConnection()); IOrmCommand cmd = entities.CreateTextCommand(); table = entities.DbAdapter.ReplaceSpecialCharacters(table); colunn = entities.DbAdapter.ReplaceSpecialCharacters(colunn); selectOnColumn = entities.DbAdapter.ReplaceSpecialCharacters(selectOnColumn); selectValue = entities.DbAdapter.ReplaceSpecialCharacters(selectValue); cmd.CommandText = $"SELECT {colunn} FROM {table} WHERE {selectOnColumn} = '{selectValue}' "; Log.Debug("Execute: " + cmd.CommandText); using (IOrmReader ormReader = cmd.ExecuteReader()) { while (ormReader.Read()) { rv = ormReader.GetString(colunn); break; } } } catch (Exception ex) { Log.Exception(ex); throw; } } return rv; } private string GetDbConnection() { if (Variables.Contains(Db_Connection_Variable) && string.IsNullOrWhiteSpace(Variables[Db_Connection_Variable].ToString()) == false) { return Variables[Db_Connection_Variable].ToString(); } else { throw new System.ApplicationException($"Missing Variable {Db_Connection_Variable}!"); } } } }