public override void Object2Ui(Tabelle t) { _uiLiMaterial.Items.Clear(); foreach (var record in Datenverwaltung.GetAllRecordsFromTable("Material_mat")) { _uiLiMaterial.Items.Add(new CheckBox() { DataContext = (Material_mat)record, Content = ((Material_mat)record).sBezeichnung }); } if (t != null) { Modell_mod modell = t as Modell_mod; _uiTbBezeichnung.Text = modell.sBezeichnung; _uiTbGeschlecht.SelectedValue = modell.sGeschlecht; _uiImBildAnzeige.Source = Byte2Pic(modell.bSymbolBild); _uiTbTyp.SelectedValue = modell.typ_iId; _bild = modell.bSymbolBild; foreach (var item in _uiLiMaterial.Items) { if (modell.Materialien.Contains(((CheckBox)item).DataContext)) { ((CheckBox)item).IsChecked = true; } else { ((CheckBox)item).IsChecked = false; } } } else { _uiTbBezeichnung.Clear(); _uiTbGeschlecht.SelectedValue = null; _uiImBildAnzeige.Source = null; _uiTbTyp.SelectedValue = null; _bild = null; foreach (var item in _uiLiMaterial.Items) { ((CheckBox)item).IsChecked = false; } } }
//Heider public bool ModellSpeichern(Modell_mod mod, out string errmsg) { errmsg = ""; using (SqlConnection con = new SqlConnection(_connectionString)) { con.Open(); String sql; if (mod.iId != null) { sql = "UPDATE Aufkleber.Modell_mod SET sBezeichnung=@sBezeichnung, sGeschlecht = @sGeschlecht, bSymbolBild = @bSymbolBild, typ_iId = @typ_iId " + "WHERE iId=@pid"; } else { sql = "INSERT INTO Aufkleber.Modell_mod " + "(sBezeichnung, sGeschlecht, bSymbolBild, typ_iId) " + "VALUES (@sBezeichnung, @sGeschlecht, @bSymbolBild, @typ_iId);" + "SELECT SCOPE_IDENTITY();"; } SqlCommand cmd = new SqlCommand(sql, con); if (mod.iId != null) { cmd.Parameters.AddWithValue("@pid", mod.iId); } cmd.Parameters.AddWithValue("@sBezeichnung", mod.sBezeichnung); cmd.Parameters.AddWithValue("@sGeschlecht", mod.sGeschlecht); SqlParameter symbolBild = cmd.Parameters.Add(new SqlParameter("@bSymbolBild", System.Data.SqlDbType.VarBinary)); symbolBild.IsNullable = true; symbolBild.Value = DBNull.Value; if (mod.bSymbolBild != null) { symbolBild.Value = mod.bSymbolBild; } cmd.Parameters.AddWithValue("@typ_iId", mod.typ_iId); try { if (mod.iId == null) { mod.iId = Convert.ToInt32(cmd.ExecuteScalar()); //cmd.ExecuteNonQuery(); } else { cmd.ExecuteNonQuery(); } } catch (SqlException e) { if (e.Number == 2627) { // Unique violation errmsg = "Nummer war nicht eindeutig."; } else { // irgendein Fehler errmsg = "Unbekannter DB-Fehler"; } // Orginaltext noch anhängen errmsg += "\n" + e.Message; return(false); } } ModMatSpeichern(mod, errmsg); return(true); }
public override Tabelle Ui2Object(Tabelle record) { Modell_mod m; byte[] savePic; if (record == null) { m = new Modell_mod(); } else { m = record as Modell_mod; } /*string bez = _uiTbBezeichnung.Text; ; * foreach (Modell_mod item in Datenverwaltung.GetAllRecordsFromTable("Modell_mod")) * { * * if (item.sBezeichnung == bez) * { * MessageBox.Show("Bezeichnung muss eindeutig sein", "Fehlermeldung"); * return null; * * } * }*/ try { m.sBezeichnung = _uiTbBezeichnung.Text; } catch (Exception e) { MessageBox.Show("Bezeichnug muss eindeutig sein", "DB-Fehler"); } m.sGeschlecht = _uiTbGeschlecht.SelectedValue.ToString(); m.bSymbolBild = _bild; savePic = m.bSymbolBild; m.bSymbolBild = Link2Byte(); if (m.bSymbolBild == null) { m.bSymbolBild = savePic; } _uiTbSymbolBildPfad = null; m.typ_iId = (int?)_uiTbTyp.SelectedValue; m.Materialien.Clear(); foreach (var item in _uiLiMaterial.Items) { if (((CheckBox)item).IsChecked == true) { m.Materialien.Add((Material_mat)((CheckBox)item).DataContext); } } return(m); }
public bool ModMatSpeichern(Modell_mod m, string errmsg) { errmsg = ""; Console.WriteLine("in ModMatSpeichern vor löschen"); DeleteModMat(new List <Tabelle> { m }, errmsg); Console.WriteLine("in ModMatSpeichern Nach löschen"); if (m.Materialien.Count == 0) { Console.WriteLine("in ModMatSpeichern hat 0 Materialien"); return(true); } using (SqlConnection con = new SqlConnection(_connectionString)) { con.Open(); String sql; sql = "INSERT INTO Aufkleber.mod_mat " + "(mod_iId, mat_iId) VALUES"; for (int i = 0; i < m.Materialien.Count; i++) { if (i != 0) { sql += ", "; } sql += "(" + m.iId + ", " + m.Materialien[i].iId + ")"; } Console.WriteLine(sql); SqlCommand cmd = new SqlCommand(sql, con); try { cmd.ExecuteNonQuery(); Console.WriteLine("in ModMatSpeichern Nach Execute"); } catch (SqlException e) { if (e.Number == 2627) { errmsg = "Numer war nicht eindeutig"; } else { errmsg = "Unbekannter DB-Fehler"; } errmsg += "\n" + e.Message; return(false); } con.Close(); } Console.WriteLine("in ModMatSpeichern sollte gehen"); return(true); }