Benutzer mit den meisten Antworten
Datenbank Update mittels Linq to SQL

Frage
-
Hallo zusammen,
Ich benutze einen SQL Server 2005.
Unter Visual Studio 2010 habe ich eine Silverlight anwendung erstellt.Die Datenbank habe ich im Web Part des Projektes eingebunden (Linq to SQL Classes *.dbml) und ich schaffe auch aus der Datenank zu lesen.
Nun möchte ich eine Update Funktion implementieren mit der die Einträge in der Datenbank aktualisiert werden.
Diese Funktion stelle ich in einem Webpart zur Verfügung die das tatsächliche Update durchführen soll. Dazu habe ich folgende Funktion geschrieben:[OperationContract] public void updateBasicsDetails(int projNr, string projectCatchword) { DBDataContext db = new DBDataContext(); var result = db.Basics_TABs.FirstOrDefault(l => l.ProjectID== projNr); if (result == null) throw new ArgumentException("User not found", "username"); result.ProjectCatchword = projectCatchword; db.SubmitChanges(); }
Clientseitig binde ich die entsprechende Service Referez ein.
Dann habe ich einen Button erstellt, mit dem ich das Update der Datenbank durchführen möchte. Diese Funktion sieht folgendermaßen aus:
private void cmdSave_Click(object sender, RoutedEventArgs e) { ServiceClient.updateBasicsDetailsAsync(100, txtProjectCatchword.Text.ToString()); }
Ich habe mich sehr viel durchs Netzt gewühlt und immer wieder war der Tip, dass es einen Primary Key in der Tabelle geben muss. In meiner Tabelle ist die ProjektID und eine ID die einfach nur mitzählt der Primary Key. Aber auch das löst mein Problem nicht.
Ich bekomme zwar keine Fehlermeldung und eine Exception wird auch nicht geworfen, aber ein Update wird nicht durchgeführt. In der Datenbank bleibt einfach das alte Projektstichwort stehen.
Ich zerbreche mir den Kopf und weiß nicht mehr, was ich noch machen kann.
Es wäre super, wenn mir hier jemand helfen und unterstützen könnte.
Gruß
Olli
Montag, 26. November 2012 12:46
Antworten
-
Hallo Robert,
vielen Dank für deine Hilfe.
Dein 2. Link hat mich auf die Lösung meines Problems gebracht.
Auch ich hatte in der Datenbank später die PKs definiert und nicht den Designer im Visual Studio aktualisiert. Somit war hier also der PK nicht bekannt. Den PK im Designer kann man nachträglich über die Properties der entsprechenden Datenbankfelder setzen. Oder die Datenbank muss erneut über Drag and Drop in den Designer gezogen werden.
Es ist nun wirklich so das mindestens ein Feld in der Datenbank ein PK sein muss, um ein Update auf der Datenbank ausführen zu können.
Gruß
Olli
- Als Antwort markiert Olli82 Dienstag, 27. November 2012 07:34
Dienstag, 27. November 2012 07:33
Alle Antworten
-
Ich habe mich sehr viel durchs Netzt gewühlt und immer wieder war der Tip, dass es einen Primary Key in der Tabelle geben muss. In meiner Tabelle ist die ProjektID und eine ID die einfach nur mitzählt der Primary Key. Aber auch das löst mein Problem nicht.
Hallo Olli82,
Schau Dir mal folgende Links an. Vielleicht können sie Dir weiterhelfen.
Update SubmitChanges() - does not update …“ For clarity, it is not the existence of a primary key in the database that matter here but whether one or more columns that uniquely identify records are marked as primary keys in the Linq-to-SQL designer. In other words, even if there is no PK in the db, marking column(s) that can logically act as PK as primary key is sufficient“
Linq To Sql not updating on Context.SubmitChanges() …“ I made the correction in the database but forgot to update the designer so it didnt work. Its only when I set the primary key in the designer that it worked“
Grüße,
Robert
Robert Breitenhofer, MICROSOFT
Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „Entwickler helfen Entwickler“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.
Montag, 26. November 2012 17:56 -
Hallo Robert,
vielen Dank für deine Hilfe.
Dein 2. Link hat mich auf die Lösung meines Problems gebracht.
Auch ich hatte in der Datenbank später die PKs definiert und nicht den Designer im Visual Studio aktualisiert. Somit war hier also der PK nicht bekannt. Den PK im Designer kann man nachträglich über die Properties der entsprechenden Datenbankfelder setzen. Oder die Datenbank muss erneut über Drag and Drop in den Designer gezogen werden.
Es ist nun wirklich so das mindestens ein Feld in der Datenbank ein PK sein muss, um ein Update auf der Datenbank ausführen zu können.
Gruß
Olli
- Als Antwort markiert Olli82 Dienstag, 27. November 2012 07:34
Dienstag, 27. November 2012 07:33 -
Hallo Robert,
vielen Dank für deine Hilfe.
Dein 2. Link hat mich auf die Lösung meines Problems gebracht.
Hallo Olli82,
Gerne. Freut mich dass ich Dir helfen konnte.
Grüße,
Robert
Robert Breitenhofer, MICROSOFT
Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „Entwickler helfen Entwickler“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.
Dienstag, 27. November 2012 07:50