Autor Beitrag
benschiaadalen
Hält's aus hier
Beiträge: 1



BeitragVerfasst: Mi 24.06.09 13:18 
Hallo Zusammen

Ich und mein Mitlehrling haben einen Auftrag um eine OnlineInventarListe zu erstellen mit C# .NET.

Auf der Edit Seite kann man per ComboBoxen (Drop Down Lists) auswählen.
z.B. Gibt es eine DropDownList in der man die Art seines Arbeitsgeräts auswählen kann (PC, Notebook, ...) welches eine ID besitzt.

Falls man dann den Edit Button klickt werden die Values ausgelesen und sollten in die Datenbank gespeichert werden:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
protected void cmdEdit_Click(object sender, EventArgs e)
        {
            int tischID = Convert.ToInt32(ddlArbeitstisch.SelectedValue);
            int abteilungsID = Convert.ToInt32(ddlArbeitsOrt.SelectedValue);
            int mitarbeiterID = Convert.ToInt32(ddlUser.SelectedValue);
            int geraeteID = Convert.ToInt32(ddlArt.SelectedValue);
            int modellID = Convert.ToInt32(ddlModell.SelectedValue);
            int monitorID = Convert.ToInt32(ddlMonitor.SelectedValue);
            int lautsprecherID = Convert.ToInt32(ddlLautsprecher.SelectedValue);

            tblArbeitsplatz ap = glo.tblArbeitsplatz
                                      .Where(a => a.tblArbeitstisch.ArbeitstischID == tischID)
                                      .First();

            //ComboBoxen speichern
            ap.tblArbeitstisch.ArbeitstischID = tischID;
            ap.tblArbeitstisch.tblBuero.BueroID = abteilungsID;
            ap.t_user.UserID = mitarbeiterID;
            ap.tblModell.tblGeraeteArt.GeraeteArtID = geraeteID;
            ap.tblModell.ModellID = modellID;
            ap.tblMonitor.MonitorID = monitorID;
            ap.tblLautsprecher.LautsprecherID = lautsprecherID;

            glo.SaveChanges();
        }


Leider werden die Daten nicht gespeichert und es erscheint folgende Fehlermeldung:
Zitat:
Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.

Die Fehler kommen bei den //ComboBoxen speichern ...

Hier kommen wir nicht weiter..
Danke für jede Hilfe!
danielf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1012
Erhaltene Danke: 24

Windows XP
C#, Visual Studio
BeitragVerfasst: Mi 24.06.09 13:23 
Hallo,

das liegt daran, dass deine Anfrage kein Objekt zurückliefert (findet) oder die darin vorkommende Objekte (z.B. tblArbeitstisch) nicht gesetzt sind.

ausblenden C#-Quelltext
1:
if (ap == null) { throw new Exception("Arbeitsplatz konnte nicht gefunden werden"); }					

bzw.
ausblenden C#-Quelltext
1:
if (ap.tblArbeitstisch == null) { throw new Exception("Dem arbeitsplatz wurde kein Arbeitstisch zugewiesen"); }					


Einfach mal überprüfen, welche Objekverweis nun wirklich nicht festgelegt wurde und auf null zeigt.

Danach kannst dir ja gedanken machen, warum das so ist und wie du es beheben kannst :)

Gruß Daniel