Fragensteller
db.SaveChanges() dbupdateexception kann nicht mehr in die Datenbank schreiben, ubdaten und Loschen

Frage
-
Ich kann nach den Aktualiesiern mit den Team Server nicht mehr in die Datenbank schreiben, updaten und löschen. Das alles geht über die db.SaveChanges() Funktion.
Mein Vater denkt das es eine Rechte Probleme ist. Nur ich habe nürgens gefunden wie man dieses Problem lösen kann.
Die Datenbank Verbindung ist in Ordnung. Die Daten werden in ordentlich über geben.
Kann es an das Datum liegen. Diese sind ja lehre. Aber das hat vorher auch nicht gestört.namespace Ausbildungsnachweis.Controllers { public class AusbildungsnachweisController : Controller { private AusbildungsnachweisEntities db = new AusbildungsnachweisEntities(); // GET: Ausbildungsnachweis public ActionResult Index() { HttpCookie cooki = Request.Cookies.Get("usser"); try { if (cooki != null) { String query = db.Personens.Find(cooki.Value).DatensatzQuery(); List<Ausbildungsnachwei> ausbildungsnachweis = db.Ausbildungsnachweis.SqlQuery(query).ToList<Ausbildungsnachwei>(); ViewBag.usser = db.Personens.Find(cooki.Value); return View(ausbildungsnachweis); } } catch (Exception) { ViewBag.Error = ""; } return RedirectToAction("Index", "Anmeldung"); } // GET: Ausbildungsnachweis/Details/5 public ActionResult Details(string id, string usser) { HttpCookie cooki = Request.Cookies.Get("usser"); try { if (cooki != null) { if (id == null) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } Ausbildungsnachwei ausbildungsnachwei = db.Ausbildungsnachweis.Find(id, usser); if (ausbildungsnachwei == null) { return HttpNotFound(); } ViewBag.usser = db.Personens.Find(cooki.Value); return View(ausbildungsnachwei); } } catch (Exception) { ViewBag.Error = ""; } return RedirectToAction("Index", "Anmeldung"); } // GET: Ausbildungsnachweis/Create public ActionResult Create() { HttpCookie cooki = Request.Cookies.Get("usser"); try { if (cooki != null) { ViewBag.usser = db.Personens.Find(cooki.Value); ViewBag.Ausbilder = this.PersonenSelectList(PersonenArte.Ausbilder); ViewBag.Ausbildungsleite = this.PersonenSelectList(PersonenArte.Ausbildende); ViewBag.Auszubildende = this.PersonenSelectList(PersonenArte.Auszubildenden); return View(); } } catch (Exception) { ViewBag.Error = ""; } return RedirectToAction("Index", "Anmeldung"); } // POST: Ausbildungsnachweis/Create // Aktivieren Sie zum Schutz vor übermäßigem Senden von Angriffen die spezifischen Eigenschaften, mit denen eine Bindung erfolgen soll. Weitere Informationen // finden Sie unter http://go.microsoft.com/fwlink/?LinkId=317598. [HttpPost] [ValidateAntiForgeryToken] public ActionResult Create([Bind(Include = "Ausbildungsnachweis_Nr,Auszubildende,Ausbilder,Ausbildungsleite,Betriebliche_Tätikeit,Schulung,Berufsschule,Woche_Von,Woche_Bis,Status")] Ausbildungsnachwei ausbildungsnachwei) { if (ModelState.IsValid) { var test = db.Ausbildungsnachweis.Add(ausbildungsnachwei); db.SaveChanges(); return RedirectToAction("Index"); } ViewBag.Ausbilder = this.PersonenSelectList(PersonenArte.Ausbilder, ausbildungsnachwei); ViewBag.Ausbildungsleite = this.PersonenSelectList(PersonenArte.Ausbildende, ausbildungsnachwei); ViewBag.Auszubildende = this.PersonenSelectList(PersonenArte.Auszubildenden, ausbildungsnachwei); return View(ausbildungsnachwei); } // GET: Ausbildungsnachweis/Edit/5 public ActionResult Edit(string id, string usser) { HttpCookie cooki = Request.Cookies.Get("usser"); try { if (cooki != null) { if (id == null) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } Ausbildungsnachwei ausbildungsnachwei = db.Ausbildungsnachweis.Find(id, usser); if (ausbildungsnachwei == null) { return HttpNotFound(); } ViewBag.usser = db.Personens.Find(cooki.Value); ViewBag.Ausbilder = this.PersonenSelectList(PersonenArte.Ausbilder, ausbildungsnachwei); ViewBag.Ausbildungsleite = this.PersonenSelectList(PersonenArte.Ausbildende, ausbildungsnachwei); ViewBag.Auszubildende = this.PersonenSelectList(PersonenArte.Auszubildenden, ausbildungsnachwei); return View(ausbildungsnachwei); } } catch (Exception) { ViewBag.Error = ""; } return RedirectToAction("Index", "Anmeldung"); } // POST: Ausbildungsnachweis/Edit/5 // Aktivieren Sie zum Schutz vor übermäßigem Senden von Angriffen die spezifischen Eigenschaften, mit denen eine Bindung erfolgen soll. Weitere Informationen // finden Sie unter http://go.microsoft.com/fwlink/?LinkId=317598. [HttpPost] [ValidateAntiForgeryToken] public ActionResult Edit([Bind(Include = "Ausbildungsnachweis_Nr,Auszubildende,Ausbilder,Ausbildungsleite,Betriebliche_Tätikeit,Schulung,Berufsschule,Woche_Von,Woche_Bis,Status")] Ausbildungsnachwei ausbildungsnachwei) { if (ModelState.IsValid) { db.Entry(ausbildungsnachwei).State = EntityState.Modified; db.SaveChanges(); return RedirectToAction("Index"); } ViewBag.Ausbilder = new SelectList(db.Personens, "Benutzername", "Name", ausbildungsnachwei.Ausbilder); ViewBag.Ausbildungsleite = new SelectList(db.Personens, "Benutzername", "Name", ausbildungsnachwei.Ausbildungsleite); ViewBag.Auszubildende = new SelectList(db.Personens, "Benutzername", "Name", ausbildungsnachwei.Auszubildende); return View(ausbildungsnachwei); } // GET: Ausbildungsnachweis/Delete/5 public ActionResult Delete(string id, string usser) { HttpCookie cooki = Request.Cookies.Get("usser"); try { if (cooki != null) { if (id == null) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } Ausbildungsnachwei ausbildungsnachwei = db.Ausbildungsnachweis.Find(id, usser); if (ausbildungsnachwei == null) { return HttpNotFound(); } ViewBag.usser = db.Personens.Find(cooki.Value); return View(ausbildungsnachwei); } } catch (Exception) { ViewBag.Error = ""; } return RedirectToAction("Index", "Anmeldung"); } // POST: Ausbildungsnachweis/Delete/5 [HttpPost, ActionName("Delete")] [ValidateAntiForgeryToken] public ActionResult DeleteConfirmed(string id, string usser) { Ausbildungsnachwei ausbildungsnachwei = db.Ausbildungsnachweis.Find(id, usser); db.Ausbildungsnachweis.Remove(ausbildungsnachwei); db.SaveChanges(); return RedirectToAction("Index"); } protected override void Dispose(bool disposing) { if (disposing) { db.Dispose(); } base.Dispose(disposing); } private SelectList PersonenSelectList(PersonenArte Arte) { string query = "SELECT *" + "FROM Personen as P "; switch (Arte) { case PersonenArte.Ausbilder: query += "WHERE P.Position = 'Ausbilder'"; break; case PersonenArte.Ausbildende: query += " WHERE P.Position = 'Ausbildende'"; break; case PersonenArte.Auszubildenden: query += " WHERE P.Position = 'Auszubildenden'"; break; } return new SelectList(db.Personens.SqlQuery(query).ToList(), "Benutzername", "Name"); ; } private SelectList PersonenSelectList(PersonenArte Arte, Ausbildungsnachwei ausbildungsnachwei) { string query = "SELECT * " + "FROM Personen as P"; switch (Arte) { case PersonenArte.Ausbilder: query += " WHERE P.Position = 'Ausbilder'"; return new SelectList(db.Personens.SqlQuery(query).ToList(), "Benutzername", "Name", ausbildungsnachwei.Ausbilder); case PersonenArte.Ausbildende: query += " WHERE P.Position = 'Ausbildende'"; return new SelectList(db.Personens.SqlQuery(query).ToList(), "Benutzername", "Name", ausbildungsnachwei.Ausbildungsleite); case PersonenArte.Auszubildenden: query += " WHERE P.Position = 'Auszubildenden'"; return new SelectList(db.Personens.SqlQuery(query).ToList(), "Benutzername", "Name", ausbildungsnachwei.Auszubildende); } return new SelectList(db.Personens.SqlQuery(query).ToList(), "Benutzername", "Name"); } } enum PersonenArte { Ausbilder = 1, Ausbildende = 2, Auszubildenden = 3 } }
Alle Antworten
-
Hallo,
erhältst du denn eine Exception oder sonst eine Meldung? Vielleicht auch wärend dem Debuggen im Ausgabefenster?
Überprüfe bitte ob die Daten in die Tabelle geschrieben werden und ob es entsprechend nur am erneuten auslesen scheitert.
Hast du kürzlich etwas am Model geändert? Wenn es daran liegt, wird dir i.d.R. mitgeteilt was du tun musst um den Fehler zu beheben.
Tom Lambert - .NET (C#) MVP
Wozu Antworten markieren und für Beiträge abstimmen? Klicke hier.
Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter | Account bestätigen (Verify Your Account)
Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets -
Ich habe die Funktion auf die Exception geprüfte. Diese Wirte sie ja auch aus. Nur sagt dies mir nicht. dbupdateexeption. Die andern Möglichen Eexeption werden nicht angesprochen. Nur ist das ja der Allgemeine Fehler. Glaube ich.
Die Daten werden sicher nicht in die Datenbank geschrieben. Ich habe die Datenbank kontrolliert und auch bei der Ausgabe passiert nicht. Das Model habe ich nach den Erstellen des ADO.NET Entity Data Model nicht einmal verändert.
Es wird nur gesagt das die Funktion eine Eexeption hat, genauer habe ich nur noch herausgefunden dbupdateexeption. Meldung es ist ein Fehler aufgetreten schauen sie in der Beschreibung. Aber das versteh ich auch nicht.
Ach und eine große Danke das du Geantwortet hast. Bin ziemlich verzweifelt und @_@. Das ist mein Erstes lauffähiges Projekt und eigentlich war ich fertig.- Bearbeitet DauronNova Sonntag, 17. Mai 2015 20:07
-
Hallo,
deinen ersten Absatz verstehe ich leider nicht wirklich...
Vermutlich meldet sich VS mit der Exception und hält deinen Code an. Je nachdem wie das passiert hast du entweder eine Variable ex o.ä. oder ein kleines Fenster das dir den Fehler anzeigt. Bei letzterem kannst du auf Details anzeigen klicken. Wenn du auf die Variable zeigst kannst du durch ihre Werte navigieren, wie es auch in den Details funktioniert. Vermutlich gibt es eine InnerException die mehr sagt. Eventuell hat diese nochmal eine innere Exception usw. Vielleicht verraten auch andere Eigenschaften wichtige Details.
Kannst du dich denn über das Management Studio oder über VS zur Datenbank problemlos verbinden?
Tom Lambert - .NET (C#) MVP
Wozu Antworten markieren und für Beiträge abstimmen? Klicke hier.
Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter | Account bestätigen (Verify Your Account)
Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets -
Ich habe den Fehler gefunden. Mir ist eingefallen das wen ich mich mit den Sever verbinde. Die Dateien Schreibgeschützt sind. Wahrscheinlich solange ich sie nicht Auschecke.
Auch die Datenbank Datei. Ich habe dies Weggenommen und nun ist alles in Ordnung.