Beispiel #1
0
 public static void queryOptionalObject(String sqlQuery, queryTypes qt = queryTypes.NON_RETURNING_QUERY)
 {
     using (SqlConnection connection = new SqlConnection(getConnectionString()))
     {
         connection.Open();
         command = new SqlCommand(sqlQuery, connection);
         qt.DoStuff();
         command.Dispose();
     }
 }
Beispiel #2
0
        public static void DoStuff(this queryTypes q)
        {
            switch (q)
            {
            case queryTypes.JUST_DO_STUFF:
            {
                BDManager.command.ExecuteNonQuery(); break;
            }

            case queryTypes.NON_RETURNING_QUERY: {
                foreach (PropertyInfo p in getPropertiesFromObj())
                {
                    BDManager.command.Parameters.AddWithValue("@" + p.Name, p.GetValue(BDManager.myObj) ?? DBNull.Value);     // ?? para que null no de error
                }
                BDManager.command.ExecuteNonQuery(); break;
            }

            case queryTypes.INSERTING_QUERY:
            {
                foreach (PropertyInfo p in getPropertiesFromObj())
                {
                    BDManager.command.Parameters.AddWithValue("@" + p.Name, p.GetValue(BDManager.myObj) ?? DBNull.Value);         // ?? para que null no de error
                }
                BDManager.idInsertado = BDManager.command.ExecuteScalar().ToString();
                break;
            }

            case queryTypes.SINGLE_RETURNING_QUERY:
            {
                SqlDataReader reader = BDManager.command.ExecuteReader();
                if (reader.Read())
                {
                    foreach (PropertyInfo p in getPropertiesFromObj())
                    {
                        p.SetValue(BDManager.myObj, (reader[p.Name] == DBNull.Value ? default(string) : reader[p.Name].ToString()));
                    }
                    foreach (PropertyInfo p in getIdFromObj())
                    {
                        p.SetValue(BDManager.myObj, (reader[p.Name] == DBNull.Value ? default(string) : reader[p.Name].ToString()));
                    }         // en el caso del insert es necesario otorgar el id al objeto
                }
                reader.Close();
                break;
            }

            case queryTypes.MULTIPLE_RETURNING_QUERY:
            {
                BDManager.listaObjetosRetornados = new List <object>();
                SqlDataReader reader = BDManager.command.ExecuteReader();
                while (reader.Read())
                {
                    propsFromObj propGetter = new propsFromObj();
                    object       instance   = Activator.CreateInstance(BDManager.dummyType);
                    foreach (PropertyInfo p in propGetter.getPropertiesFromObj(instance))
                    {
                        p.SetValue(instance, (reader[p.Name] == DBNull.Value ? default(string) : reader[p.Name].ToString()));
                    }
                    foreach (PropertyInfo p in propGetter.getIdFromObj(instance))
                    {
                        p.SetValue(instance, (reader[p.Name] == DBNull.Value ? default(string) : reader[p.Name].ToString()));
                    }
                    BDManager.listaObjetosRetornados.Add(instance);
                }
                reader.Close();
                break;
            }

            case queryTypes.COUNT:
            {
                BDManager.returnDummy = (Int32)BDManager.command.ExecuteScalar();
                break;
            }
            }
        }