示例#1
0
 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);
 }
示例#2
0
        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();
             * }
             */
        }