public override void Object2Ui(Tabelle t) { if (t != null) { Material_mat modell = t as Material_mat; _uiTbBezeichnung.Text = modell.sBezeichnung; _uiTbNummer.Text = modell.sNummer; } else { _uiTbBezeichnung.Clear(); _uiTbNummer.Clear(); } }
public override Tabelle Ui2Object(Tabelle record) { Material_mat m; if (record == null) { m = new Material_mat(); } else { m = record as Material_mat; } if (_uiTbBezeichnung.Text.Trim().Length == 0) { _uiTbBezeichnung.Focus(); MessageBox.Show("Bezeichnung darf nicht leer sein!", "Fehlermeldung"); return(null); } else { m.sBezeichnung = _uiTbBezeichnung.Text; } if (_uiTbNummer.Text.Trim().Length == 0) { _uiTbNummer.Focus(); MessageBox.Show("Nummer darf nicht leer sein!", "Fehlermeldung"); return(null); } else if (_uiTbNummer.Text.Trim().Length != 10) { _uiTbNummer.Focus(); MessageBox.Show("Nummer muss 10-stellig sein!", "Fehlermeldung"); return(null); } else { m.sNummer = _uiTbNummer.Text.Trim(); } return(m); }
public bool MaterialSpeichern(Material_mat m, out string errmsg) { errmsg = ""; // Annahme: kein Fehler using (SqlConnection con = new SqlConnection(_connectionString)) { con.Open(); String sql; if (m.iId != null) { sql = "UPDATE Aufkleber.Material_mat SET sNummer=@pnummer, sBezeichnung=@pbezeichnung " + "WHERE iId=@pid"; } else { sql = "INSERT INTO Aufkleber.Material_mat " + "(sNummer, sBezeichnung) " + "VALUES (@pnummer, @pbezeichnung);" + "SELECT SCOPE_IDENTITY();"; } SqlCommand cmd = new SqlCommand(sql, con); if (m.iId != null) { cmd.Parameters.AddWithValue("@pid", m.iId); } // Parameter für Pflichtfelder sind einfach // Man kann den Wert gleich belegen cmd.Parameters.AddWithValue("@pnummer", m.sNummer); cmd.Parameters.AddWithValue("@pbezeichnung", m.sBezeichnung); // Will man etwa die Id des neuen Datensatzes, so nutzt man // ExecuteScalar. Die Id wird durch die obige Query ausgegeben. // Entscheidend ist die Funktion SCOPE_IDENTITY(). // Die muss mit der selben Query wie der INSERT aufgerufen werden, sonst // funktioniert es nicht. try { if (m.iId == null) { m.iId = Convert.ToInt32(cmd.ExecuteScalar()); Console.WriteLine("Neue Id: {0}", m.iId); //cmd.ExecuteNonQuery(); } else { // Liefert die Query keinen Wert, dann ExecuteNonQuery // return-Wert ist die Anzahl der betroffenen DS. cmd.ExecuteNonQuery(); //cmd.Parameters.AddWithValue("@pnr", k.sNr); } } 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); } } return(true); }