Laden...

[erledigt] Linq to SQL Datenbankupdate wird nicht durchgeführt

Erstellt von Vicky vor 11 Jahren Letzter Beitrag vor 11 Jahren 1.146 Views
V
Vicky Themenstarter:in
8 Beiträge seit 2008
vor 11 Jahren
[erledigt] Linq to SQL Datenbankupdate wird nicht durchgeführt

Hallo zusammen,

ich hoffe ich bin hier richtig mit meiner Frage und ihr könnt mir helfen.

Ich benutze einen SQL Server 2005.
Unter Visual Studio 2010 habe ich eine Silverlight anwendung geschrieben.

Die Datenbank habe ich im Web Part des Projektes eingebunden und ich schaffe auch aus der Datenank zu lesen. Dazu benutze ich Linq to SQL.

Nun möchte ich eine Update Funktion implementieren mit der die Einträge in der Datenbank aktualisiert werden.

Im Webpart stelle ich die Funktion in einem Webpart zur Verfügung die das tatsächliche Update durchführen soll


[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();
}

Diesen Webpart habe ich clientseitig als Service Reference eingebunden.

Auf der Client Setite habe ich einen Button definiert, der die Service Referenz anspricht.


private void cmdSave_Click(object sender, RoutedEventArgs e)
{
     ServiceClient.updateBasicsDetailsAsync(100, txtProjectCatchword.Text.ToString());
}

Ich habe mehrfach gelesen, dass in der Datenbank ein Primary Key vorhanden sein muss. In meiner Tabellde sind die ID und die ProjektID Primary Key.

Ich bekomme keine Fehlermeldungen.
Aber die Aktualisierung der Datenbank funktioniert nicht. Hier bleibt einfach das alte Projektstichwort stehen.

Ich bin am verzweifeln, weil ich einfach nicht mehr weiß, was ich noch ausprobieren kann.

Es wäre nett wenn mich hier jemand bei meinem Problem unterstützen könnte.

Viele Grüße
Vicky

6.911 Beiträge seit 2009
vor 11 Jahren

Hallo Vicky,

prüf mal ob überhaupt ein SQL an die Datenbank gesendet wird. Das geht bei Linq2Sql recht einfach, indem der Log-Eigenschaft des DataContext ein TextWriter zugewiesen wird. Grob so:


DBDataContext db = new DBDataContext();

db.Log = File.CreateText("mein Pfad");

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

V
Vicky Themenstarter:in
8 Beiträge seit 2008
vor 11 Jahren

Hallo Gü,

ich habe deinen Rat befolgt und in mein Webservice in der Funktion updateBasicsDetails(...) dieses eingebaut:

db.Log = File.CreateText(@"C:\test.log");

allerdings bekommen ich nun folgende Exception:> Fehlermeldung:

FaultException was unhandeled by user code

The server was unable to process the request due to an internal error. For more information about the error, either turn on IncludeExceptionDetailInFaults (either from ServiceBehaviorAttribute or from the <serviceDebug> configuration behavior) on the server in order to send the exception information back to the client, or turn on tracing as per the Microsoft .NET Framework 3.0 SDK documentation and inspect the server trace logs.

Bedeutet das jetzt, dass kein SQL-Statement ankommt oder habe ich was falsch gemacht bei dem Log-Befehl?

Vielen Dank.

Gruß
Vicky

106 Beiträge seit 2011
vor 11 Jahren

Hallo Vicky,

ein bißchen mehr Eigeninitiative wäre wirklich wünschenswert. Hast du dich schonmal schlau gemacht was eine FaultException ist? Verstehst du die Fehlermeldung? Hast du versucht die Funktion "updateBasicsDetails" serverseitig zu debuggen? Btw. Funktionsnamen werden groß geschrieben.

MfG
Rabban

V
Vicky Themenstarter:in
8 Beiträge seit 2008
vor 11 Jahren

Hallo Community,

mein Fehler lag darin das ich in den Properties im Visual Studio nicht die PKs definiert habe. Hier muss die Eigenschaft "Primary Key" auf True gesetzt werden, so wie die PKs auch in der Datenbank definert sind.

Vielleicht hilft dies noch jemand anderem weiter.

Gruß
Vicky