public void TestFactoryPattern() { Varaus v1 = Varaus.Create(-2, "", -1, -1); if (v1 == null) { write("v1=null"); } else { write(v1.ToString()); } Varaus v2 = Varaus.Create(69, "", -1, -1); if (v2 == null) { write("v2=null"); } else { write(v2.ToString()); } Varaus v3 = Varaus.Create(69, "nimi1", -1, -1); if (v3 == null) { write("v3=null"); } else { write(v3.ToString()); } Varaus v4 = Varaus.Create(69, "nimi2", 420, -1); if (v4 == null) { write("v4=null"); } else { write(v4.ToString()); } Varaus v5 = Varaus.Create(69, "toimii", 420, 366); if (v5 == null) { write("v5=null"); } else { write(v5.ToString()); } }
//Lisää uuden varauksen tauluun, palauttaa true jos ei tule poikkeusta, muuten false public bool InsertInto(Varaus v) { try { sql = "Insert into mydb.Varaus (VaraajanNimi, MateriaaliID, Määrä) values ('" + v.VaraajanNimi + "', '" + v.MateriaaliId.ToString() + "', '" + v.Maara.ToString() + "');"; command = new SqlCommand(sql, cnn); //en tiedä miksi on kaksi eri sql-komentoa, ohjeiden mukaan tein o.o adapter.InsertCommand = new SqlCommand(sql, cnn); //tämä on se toinen, mutta tämä ilmeisesti on käytössä? adapter.InsertCommand.ExecuteNonQuery(); command.Dispose(); //poistetaan olio return(true); } catch (Exception ex) { Console.WriteLine(ex.Message); return(false); } }
//Muokkaa ID:n mukaista Columnia. tark Vastaanottaa olion Varaus ja korvaa tietokannasta MateriaaliID:n mukaisen columnin tiedot. public bool Update(Varaus v) { try{ sql = "UPDATE mydb.Varaus SET VaraajanNimi='" + v.VaraajanNimi + "', MateriaaliID='" + v.MateriaaliId + "', Määrä='" + v.Maara + "' WHERE VarausID ='" + v.Id + "';"; command = new SqlCommand(sql, cnn); //en tiedä miksi on kaksi eri sql-komentoa, ohjeiden mukaan tein Owo adapter.UpdateCommand = new SqlCommand(sql, cnn); //tämä on se toinen, mutta tämä ilmeisesti on käytössä? adapter.UpdateCommand.ExecuteNonQuery(); command.Dispose(); //poistetaan olio return(true); } catch (Exception ex) { Console.WriteLine(ex.Message); return(false); } }
//Lukee kaiken datan taulusta public List <Varaus> SelectAll(List <Varaus> varaukset) { sql = "Select * from mydb.Varaus;"; command = new SqlCommand(sql, cnn); dataReader = command.ExecuteReader(); while (dataReader.Read()) { int.TryParse(dataReader.GetValue(0).ToString(), out id); varaajanNimi = dataReader.GetValue(1).ToString(); int.TryParse(dataReader.GetValue(2).ToString(), out materiaaliId); int.TryParse(dataReader.GetValue(3).ToString(), out maara); Varaus v = Varaus.Create(id, varaajanNimi, materiaaliId, maara); varaukset.Add(v); } dataReader.Close(); return(varaukset); }
public void Run() { List <Materiaali> materiaalit = new List <Materiaali>(); //Lista materiaaleista List <Tilaus> tilaukset = new List <Tilaus>(); //Lista tilauksista List <Varaus> varaukset = new List <Varaus>(); SqlConnection cnn; //tietokantayhteys-olio, jaetaan tämä muualle DatabaseManager dm = new DatabaseManager(); //tietokannanhallinta-olio, mm. yhdistys kantaan cnn = dm.OpenConnection(); //yhdistetään kantaan if (cnn != null) { DatabaseMateriaali dmMat = new DatabaseMateriaali(cnn); //luodaan olio, jolla käsitellään materiaaleja tietokannassa materiaalit = dmMat.SelectAll(materiaalit); //haetaan kaikki materiaalit kannasta listaan DatabaseTilaus dmTil = new DatabaseTilaus(cnn); //luodaan olio, jolla käsitellään tilauksia tietokannassa tilaukset = dmTil.SelectAll(tilaukset); //haetaan kaikki tilaukset kannasta listaan DatabaseVaraus dmVar = new DatabaseVaraus(cnn); varaukset = dmVar.SelectAll(varaukset); //Kokeillaan nyt lisätä kantaan, muokata kantaa ja päivittää listaa Materiaali m = Materiaali.Create(-1, 2, 3, 4); Materiaali mU = Materiaali.Create(5, 6, 7, 8); dmMat.InsertInto(m); dmMat.Update(mU); materiaalit = new List <Materiaali>(); materiaalit = dmMat.SelectAll(materiaalit); //päivitetään lista Tilaus t = Tilaus.Create(-1, "Tilaaja1", 666, materiaalit[materiaalit.Count - 1].Id); Tilaus tU = Tilaus.Create(5, "Tilaaja4299", 1337, materiaalit[3].Id); dmTil.InsertInto(t); dmTil.Update(tU); tilaukset = new List <Tilaus>(); tilaukset = dmTil.SelectAll(tilaukset); Varaus v = Varaus.Create(-1, "Varaaja1", materiaalit[materiaalit.Count - 1].Id, 69); Varaus vU = Varaus.Create(6, "Varaaja6069", materiaalit[4].Id, 21); dmVar.InsertInto(v); dmVar.Update(vU); varaukset = new List <Varaus>(); varaukset = dmVar.SelectAll(varaukset); write(path, materiaalit, tilaukset, varaukset);//lopputilanne dm.CloseConnection(); } }