locked
Datenbank Update mittels Linq to SQL RRS feed

  • 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