public static string GetEnumDescription(SKUDBOPTIONS val) { DescriptionAttribute[] attributes = (DescriptionAttribute[])val .GetType() .GetField(val.ToString()) .GetCustomAttributes(typeof(DescriptionAttribute), false); return(attributes.Length > 0 ? attributes[0].Description : string.Empty); }
public static void ExecuteQuery(SKUDBOPTIONS type, string table, List <string> fields, SKUDBOPTIONS option, List <KeyValuePair <string, object> > values, SKUDBOPTIONS clause1, SKUDBOPTIONS clause2) { //string qry = "INSERT INTO Pics (Data) VALUES(@Data)" + "SELECT F1 FROM Table1 WHERE F2='23456' OR F2='23456'"; string sql = null; if (type == SKUDBOPTIONS.INSERT) { sql = $"{GetEnumDescription(type)} {table} ({String.Join(",", fields)}) {GetEnumDescription(option)} ({String.Join(",", values.Select(v =>v.Key))})"; if (conn.State == ConnectionState.Open) { using (conn) { OleDbCommand cmd = new OleDbCommand(sql, conn); foreach (KeyValuePair <string, object> parameter in values) { if (parameter.Value.GetType() == typeof(byte[])) { cmd.Parameters.AddWithValue(parameter.Key, (byte[])parameter.Value); } } Console.WriteLine(cmd.CommandText); cmd.ExecuteNonQuery(); } } } else if (type == SKUDBOPTIONS.SELECT) { StringBuilder val = new StringBuilder(); if (values.Count == 1) { val.Append($"{values[0].Key} = '{values[0].Value}'"); } else if (values.Count > 1 && values.Count < 3) { val.Append($"{values[0].Key} = '{values[0].Value}'"); if (clause2 == SKUDBOPTIONS.OR) { val.Append($" OR {values[1].Key} = '{values[1].Value}'"); } } sql = $"{GetEnumDescription(type)} {String.Join(",", fields)} {GetEnumDescription(option)} {table} {GetEnumDescription(clause1)}".Trim() + (val != null?" (" + val + ")":""); Console.WriteLine(sql); if (conn.State == ConnectionState.Open) { using (conn) { OleDbCommand cmd = new OleDbCommand(sql, conn); Console.WriteLine(cmd.CommandText); cmd.ExecuteNonQuery(); GetCommandResults(cmd); } } } /* * using (SKUDBMgr.conn) * { * OleDbCommand cmd = new OleDbCommand(qry, SKUDBMgr.conn); * cmd.Parameters.AddWithValue("@Data", xByte); * * //SKUDBMgr.conn.Open(); * cmd.ExecuteNonQuery(); * } */ }