Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von tristar
Thema: DataGridView zu Objektliste konvertieren
Am im Forum: Grundlagen von C#

@Th69 Danke, den Denkanstoß hab ich gebraucht
Klappt nun prima!

Thema: DataGridView zu Objektliste konvertieren
Am im Forum: Grundlagen von C#

Ich habe es nun soweit hin bekommen, dass es läuft.

Nun habe ich aber innerhalb der DataGridView zwei Buttons, um die Positionen hoch und runter verschieben zu können.


  void posIndexUp(DataGridView dg)
        {
            if (dg.SelectedCells.Count > 0)
            {
                int idx = dg.SelectedCells[0].OwningRow.Index;

                if (idx > 0)
                {
                    int col = dg.SelectedCells[0].OwningColumn.Index;

                    DataGridViewRowCollection rows = dg.Rows;
                    DataGridViewRow row = rows[idx];

                    rows.Remove(row);
                    rows.Insert(idx - 1, row);

                    dg.ClearSelection();
                    dg.Rows[idx - 1].Cells[col].Selected = true;
                }
            }
        }

Das geht nun aber nicht mehr, da es datengebunden ist.
Was hätte ich hierzu für Möglichkeiten, um die Positionen verschieben zu können?

Thema: DataGridView zu Objektliste konvertieren
Am im Forum: Grundlagen von C#

Hier mal ein Versuche.


private BindingList<Positionen> blPositionen;

void SpaltenAnzeigen()
{
    
    blPositionen = new BindingList<Positionen>();      
    dataGridView1.DataSource = blPositionen;
}

void DatenUebernehmen
{
    blPositionen.Add(new Positionen()
            {
                ArtikelNummer = comboBox1.Text
            }); 
 }

Weshalb werden keine Daten im DataGridView angezeigt?
Muss ich dazu erneut die
BindingList
als
DataSource
setzen?
Oder ist die Art der Umsetzung falsch?

Thema: ComboBox mit großer Datenmenge
Am im Forum: GUI: Windows-Forms

Danke euch für Eure Hilfe!
Soweit bin ich bisher gekommen und funktioniert soweit.


 private void OnTextChanged(object sender, EventArgs e)
        {
            string filter = cbx.Text;
            lbxItems.Visible = false;

            if (String.IsNullOrEmpty(filter)) return;

            List<Baugruppe> lst = FilterBaugruppe(filter);
            if (lst == null) return;

            lbxItems.Items.Clear();
            lbxItems.Items.AddRange(lst.ToArray());
            lbxItems.DisplayMember = "NummerBezeichnung";
            lbxItems.ValueMember = "Nummer";
            lbxItems.Visible = true;
        }

  void OnMouseDoubleClick(object sender, MouseEventArgs e)
        {
            Baugruppe bg = lbxItems.SelectedItem as Baugruppe;
            if (bg != null)
            {
                cbx.Text = bg.NummerBezeichnung;
                lbxItems.Visible = false;
            }
        }

Es gibt aber noch ein paar Kleinigkeiten, wo ich Hilfe bräuchte:


// Ist es möglich (wahrscheinlich schon - nur wie?), den Teil aus dem OnMouseDoubleClick mit dem Keys.Enter Event 
// als eine Methode zu schreiben, sonst habe ich doppelten Code.
 private void cbNummer_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Down)
            {
                lbxItems.SelectedIndex = 0;
            }
            if (e.KeyCode == Keys.Enter)
            {
                Baugruppe bg = lbxItems.SelectedItem as Baugruppe;
               if (bg != null)
               {
                   cbx.Text = bg.NummerBezeichnung;
                   lbxItems.Visible = false;
               }
           }
        }

Und der zweite Punkt:
Ich würde gerne mit den Pfeil-Tasten innerhalb der ListBox navigieren.
Hab folgendes versucht, aber das SelectedItem ändert sich nicht. Weshalb?


private void lbxItems_KeyDown(object sender, KeyEventArgs e)
        {
            this.lbxItems.Focus();
            this.lbxItems.Select();

            if (e.KeyCode == Keys.Up)
            {
                if (lbxItems.SelectedIndex > 0)
                    this.lbxItems.SelectedIndex--;
                e.Handled = true;
            }
            else if (e.KeyCode == Keys.Down)
            {
                if (lbxItems.SelectedIndex < (lbxItems.Items.Count - 1))
                    this.lbxItems.SelectedIndex++;
                e.Handled = true;
            }
        }

Thema: ComboBox mit großer Datenmenge
Am im Forum: GUI: Windows-Forms

Hallo zusammen,

ich bräuchte mal wieder einen Ratschlag von Euch.
Ich überarbeite derzeit eine Windows Forms u.a. mit einer Combobox.

Leider besteht das Problem, dass beim

Form_Load
es recht lange (~ 7-8 Sek.) dauert, bis die Daten an die
ComboBox
gebunden sind.
Es sind derzeit ~ 10.500 Datensätze, Tendenz steigend.

Ein Abruf der Daten über eine separate Form ist nicht möglich, da die Nutzer weiterhin mit einer ComboBox arbeiten möchten.
Selbst wenn ich beim Laden der Daten ein Limit setze, dann muss ich ja sobald der Nutzer einen Wert auswählen möchte, die restlichen Daten laden, was dann dauert.

Das Ändern der Reihenfolge,
.DisplayMember
,
ValueMember
und die
DataSource
, um ein Re-Loading der internal List zu vermeiden, hat keinen Effekt.

Was habe ich dann für Möglichkeiten?
Danke!

Thema: UserControl oder normale Form?
Am im Forum: GUI: Windows-Forms

Hallo,
folgende Ausgangssituation:
Ich habe eine Übersicht und für diese verwende ich eine DataGridView und eine Textbox, um zu filtern.
Diese Übersicht soll in verschiedenen Bereichen angezeigt werden können und je nach Bereich ein anderes Event (beim Doppelclick auf die DataGridView) ausgeführt werden.
Event würde etwa bedeuten => Daten übergeben, neue TabPage mit Controls hinzufügen => weitere Events ...

Was ist der richtige Weg der Umsetzung dafür?
a) Erstelle ich die Übersicht als UserControl?
b) Erstelle ich eine Form und rufe je nach Bereich dann das entsprechende Event auf?
c) Das Event (Datenübergeben, AddTabPage ...) als eigenes UserControl?
d) eine andere Lösung

Ich hoffe, dass meine Frage verständlich ist?!

Thema: DataGridView zu Objektliste konvertieren
Am im Forum: Grundlagen von C#

Tut mir leid, wenn ich es noch nicht ganz verstanden habe.
Ich kann zwar eine Zeile zur DataTable hinzufügen und auch als Objekt speichern. Das aber nur, wenn ich die Daten z.B. über eine Textbox an die DataGridView übergebe und einfüge.

Meine Frage ist, wie ich es hinzufügen kann, wenn die Daten direkt in die DataGridView eingetragen werden?
Wenn ich bereits eine Liste binde, dann kann der Nutzer direkt nichts ändern ...

Thema: DataGridView zu Objektliste konvertieren
Am im Forum: Grundlagen von C#

Eine leere Liste (List<MeineKlasse>)?

Thema: DataGridView zu Objektliste konvertieren
Am im Forum: Grundlagen von C#

Hallo,

ich habe ein ungebundenes DataGridView, dem ich lediglich Spalten hinzugefügt habe.
Der Nutzer kann dann seine Daten in die Zeilen eintragen.

Nun möchte ich die Daten als Objektliste einlesen, um anschließend speichern zu können.
Meine Frage ist, ob meine Lösung eine "gute" Lösung ist, oder ob es einen besseren Weg gibt?


List<MeineKlasse> list = new List<MeineKlasse>();
foreach (DataGridViewRow row in DataGridView1.Rows)
{
    MeineKlasse obj = new MeineKlasse();
    obj.id = (int)row.Cells["Id"].Value; 
    obj.Name = (string)row.Cells["Name"].Value;
    ...
    list.Add(obj);
}

Thema: Filterabfrage System.NullReferenceException
Am im Forum: Grundlagen von C#

Hier mein Versuch den Filter anzupassen. Zwar ohne Fehlermeldung, aber leider werden auch keine Ergebnisse angezeigt.


var filter = ansprechpartnerRepository.AlleAnsprechpartner().Where(c => c.Nachname != null).Select(c => c.Nachname.ToString().ToUpper().Contains(textBox1.Text.ToUpper())).ToList();

Ist mein Filterausdruck falsch?
ODer kann es daran liegen, dass andere Einträge im Datensatz null sind?

Thema: Filterabfrage System.NullReferenceException
Am im Forum: Grundlagen von C#

Zitat
Entsprechend bleibt nur noch der Verdacht, dass dein Code nicht korrekt ist oder du ein Objekt mit Null als Nachname hast.
Ich habe Objekte, die Null als Nachnamen haben. Nur verstehe ich leider nicht, wie ich das nun lösen kann??

Thema: Filterabfrage System.NullReferenceException
Am im Forum: Grundlagen von C#

Entschuldige, aber irgendwie stehe ich auf dem Schlauch.
Habe die Abfrage nun wie folgt angepasst:


string q = @"SELECT
                            a.AnsprechpID AS AnsprechpartnerId,
                            a.Abteilung AS Abteilung,
                            a.Frau_Herr AS Anrede,
                            a.Email AS Email,
                            a.FaxNr AS FaxNr,
                            a.StandortId AS StandortId,
                            a.Nachname AS Nachname,
                            a.Vorname AS Vorname,
                            a.Titel AS Titel,
                            s.Firma_Standort AS Kunde
                            FROM tblansprechpartner a
                            LEFT JOIN tblstandort s ON a.StandortID = s.StandortID
                            WHERE (a.Nachname IS NOT NULL AND a.Nachname = @Nachname)";
Trotzdem erhalte ich weiterhin die Fehlermeldung??

Thema: Filterabfrage System.NullReferenceException
Am im Forum: Grundlagen von C#

Hallo,

ich rufe Daten aus der DB ab und binde diese an eine DataGridView. Klappt alles wunderbar.


public IEnumerable<Ansprechpartner> AlleAnsprechpartner()
        {
            using (IDbConnection db = new MySqlConnection(AppConnection.ConnectionString))
            {
                string q = @"SELECT
                            a.ID AS AnsprechpartnerId,
                            a.Abteilung AS Abteilung,
                            a.Email AS Email,
                            a.FaxNr AS FaxNr,
                            a.AdressId AS AdresseNr,
                            a.Nachname AS Nachname,
                            a.Vorname AS Vorname,
                            a.Titel AS Titel,
                            s.Firma AS Kunde
                            FROM tblansprechpartner a
                            LEFT JOIN tblstandort s ON a.AdressId = s.AdressId";

                return db.Query<Ansprechpartner>(q, commandType: CommandType.Text);
            }
        }

...
           var ansprechp = ansprechRepository.AlleAnsprechpartner().ToList();
            SortableBindingList<Ansprechpartner> sort = new SortableBindingList<Ansprechpartner>(ansprechp);
            dgUebersicht.DataSource = sort;


Nun möchte ich mit einer Textbox die Daten filtern:


var filteredList = ansprechRepository.AlleAnsprechpartner().Where(c => c.Nachname.ToString().Contains(textBox1.Text)).ToList();
Beim Filtern erhalte ich jedoch den Fehler:
Fehler
System.NullReferenceException: "Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt."

Warum? Was ist falsch?
Kann es sein, weil ich als Tabelleneinträge bei Nachname auch null Werte habe?
Falls ja, wie kann ich das Problem lösen?

Ich habe es schon mit einer anderen Abfrage versucht, jedoch erhalte ich den selben Fehler:

string q = @"SELECT
                            a.AnsprechpID AS AnsprechpartnerId,
                            a.Abteilung AS Abteilung,
                            a.Frau_Herr AS Anrede,
                            a.Email AS Email,
                            a.FaxNr AS FaxNr,
                            a.StandortId AS StandortId,
                            a.Nachname AS Nachname,
                            a.Vorname AS Vorname,
                            a.Titel AS Titel,
                            s.Firma_Standort AS Kunde
                            FROM tblansprechpartner a
                            LEFT JOIN tblstandort s ON a.StandortID = s.StandortID
                            WHERE (a.Nachname IS NULL OR a.Nachname = @Nachname)";

Thema: Fehler bei UserControls auf Form hinzufügen
Am im Forum: Grundlagen von C#

Wenn der Code im Load auskommentiert ist, kann ich das UserControl problemlos hinzufügen.

Zugriff auf die AppConnection habe ich noch auf der Form, auf der das UserControl eingefügt werden soll.

Thema: Fehler bei UserControls auf Form hinzufügen
Am im Forum: Grundlagen von C#

Das mache ich doch, oder nicht?


public partial class userControlTest : UserControl
    {     
        public userControlTest()
        {
            InitializeComponent();
        }
       

        private void userControlTest_Load(object sender, EventArgs e)
        {
            IDatenRepository datenRepository new DatenRepository ();
            var kndDaten = datenRepository.AlleKunden().ToList();
            dataGridView1.DataSource = kndDaten;
        }

Thema: Fehler bei UserControls auf Form hinzufügen
Am im Forum: Grundlagen von C#

Leider hat sich das Problem doch noch nicht erledigt.

Ich habe das UserControl versucht auf der TabPage einzufügen. Da erhalte ich die dann die Fehlermeldungen - siehe Bild.
Der Fehler tritt ja nicht erst beim Start des Programmes auf, sondern bereits im Designer.

Folgendes habe ich gefunden, was ich denke, auf mein Problem zutrifft.

Zitat

This problem can be caused if a class tries to get value of a key in web.config or app.config which is not present there.

e.g.
The class has a static variable
private static string ClientID = System.Configuration.ConfigurationSettings.AppSettings["GoogleCalendarApplicationClientID"].ToString();
But the web.config doesn't contain the GoogleCalendarApplicationClientID key

The error will be thrown on any static function call or any class instance creation

Kann mir bitte jemand zu helfen, wie ich das Problem lösen kann?

Thema: Fehler bei UserControls auf Form hinzufügen
Am im Forum: Grundlagen von C#

Hab nochmals alles gelöscht und neu angelegt.
Nun klappt es. Danke für Eure Hilfe!

Thema: Fehler bei UserControls auf Form hinzufügen
Am im Forum: Grundlagen von C#

Zumindest konnte ich nun die Zeile finden, wo es Probleme gibt.
Leider weiß ich nicht, wie ich dies beheben kann.

In meinem UserControl greife ich auf ein Repository zu, das ich auch auf meiner Form verwende.

Kommentiere ich im UserControl folgenden Code aus, dann könnte ich das UserControl auch übernehmen:


void AufrufUebersicht()
        {
                  kundeRepository = new KundeRepository();
                  var kndDaten = kundeRepository.AlleKundendaten().ToList();
                  dataGridView1.DataSource = kndDaten;
}
D.h. die Zeile
var kndDaten = kundeRepository.AlleKundendaten().ToList();
macht Probleme.

Ich vernwende auf der Form zwar einen anderen Namen, kundenDaten anstatt kndDaten, aber das hilft nicht.

Kann mir bitte jemand helfen, wie ich das Problem lösen kann - danke!

Thema: Fehler bei UserControls auf Form hinzufügen
Am im Forum: Grundlagen von C#

Nun habe ich den Konstruktor des UserControl ohne Parameter erstellt.
Allerdings bekomme ich nun wieder bereits beim Hinzufügen auf die Form die folgende Fehlermeldung:

Anbei mal der Code:

Zitat
System.TypeInitializationException: Der Typeninitalisierer für Projektname.AppConnction hat eine Ausnahme verursacht.
Syste.NullReferneceException: Der Objektverweis wurde nicht aus eine Objektinstanz festgelegt.

Das hier ist meine AppConnection:

 public static class AppConnection
    {
        public static string ConnectionString = ConfigurationManager.ConnectionStrings["conn"].ConnectionString;
}


UserControl:

public partial class userControlKunde : UserControl
    {
        IKundeRepository kundeRepository;

        public event DataGridViewCellEventHandler dg_CellDoubleClickEvent;

        public userControlKunde()
        {
            InitializeComponent();
            AufrufUebersicht();
        }
private void userControlKunde_Load(object sender, EventArgs e)
        {
            this.dataGridView1.CellDoubleClick += dg_CellDoubleClickEvent;
        }

 void AufrufUebersicht()
        {
                  kundeRepository = new KundeRepository();
                  var kndDaten = kundeRepository.AlleKundendaten().ToList();
                  dataGridView1.DataSource = kndDaten;
}


        private  void dg_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            dg_CellDoubleClickEvent?.Invoke(this.dataGridView1, e);
        }
    }


Form:

 public partial class Form_Kunde : Form
    {
       
        userControlKunde  uc = new userControlKunde ();

 
        public Form_Kunde())
        {
            InitializeComponent();
            AufrufKndUebersicht();
        }
        private void Form_Kunde_Load(object sender, EventArgs e)
        {
            uc.dg_CellDoubleClickEvent += new DataGridViewCellEventHandler(dataGridView1_CellDoubleClick);
        }

        private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            MessageBox.Show("TETS");
        }
...

Thema: Fehler bei UserControls auf Form hinzufügen
Am im Forum: Grundlagen von C#

Hallo,

ich habe ein UserControl erstellt und möchte dieses nun auf einer TabPage auf meiner Form einbinden.
Beim Hinzufügen über den Designer erhalte ich die Fehlermeldung

Zitat
"Fehler beim Erstellen der Komponente userControl1
System.MissingMethodException: Der Konstruktor für den Typ userControl1 wurde nicht gefunden.
...
Woran liegt das? Bzw. wie kann ich das Problem beheben?

Thema: DataGridView sortieren mit IEnumerable<T>
Am im Forum: Grundlagen von C#

@Th69 So funktioniert beides! Super, vielen Dank!

Thema: DataGridView sortieren mit IEnumerable<T>
Am im Forum: Grundlagen von C#

@Th69 An welcher Stelle meinst du ToList()?
Versucht habe ich dgArtikel.DataSource = artikelRepository.AlleArtikel().ToList(); Dies lässt sich allerdings nicht sotieren.

Thema: DataGridView sortieren mit IEnumerable<T>
Am im Forum: Grundlagen von C#

Hallo,
ich verwende für meine Abfragen Dapper.
z.B.:

 return db.Query<Lager>(q, commandType: CommandType.Text);
So erhalte ich als Rückgabewert IEnumerable<Lager>.

Wenn ich dies direkt an eine DataGridView binde, kann ich anschließend nicht sortieren. Daher habe ich mir eine Methode
ToDataTable
erstellt, womit ich
die DataGridView wieder sortieren kann, was auch prima klappt - eigentlich.

Solange ich IEnumerable<T> direkt an die DataGridView gebunden hatte, konnte ich z.B. per Doppelklick einen Datensatz wie folgt aufrufen:

Artikel a = new Artikel();
private void dgArtikel_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
            if (e.RowIndex != -1)
            {
                a = dgArtikel.Rows[e.RowIndex].DataBoundItem as Artikel;
                .....
             }
}

Seitdem ich die Daten nun per DataTable binde, funktioniert der obige Aufruf nicht mehr.
Was kann ich machen, dass der obige Aufruf trotz Verwendung einer DataTable funktioniert?

Thema: Update mit Dapper und Repository pattern
Am im Forum: Grundlagen von C#

Oh, total übersehen, dass das ja immer ausgeführt wird! DANKE!

Thema: Update mit Dapper und Repository pattern
Am im Forum: Grundlagen von C#

Hallo,

um ein neues Projekt ordentlich zu gestalten arbeite ich mich nun in DApper und Repository pattern ein.
Das Abrufen der Daten von der DB hat auch schon prima geklappt.
Nun hänge ich beim Update.


public interface IArtikelRepository
    {
        IEnumerable<Artikel> GetAllArtikel();
        Artikel GetById(int ArtikelIdent);
        void Insert(Artikel artikel);
        void UpdateArtikel(Artikel artikel);
        void Delete(int ArtikelIdent);
        void Save();
    }


public void UpdateArtikel(Artikel artikel)
        {
            using (IDbConnection db = new MySqlConnection(AppConnection.ConnectionString))
            {
                string q = @"UPDATE tblartikel SET Name = @Name WHERE Id = @Id";

                if (db.State == ConnectionState.Closed)
                    db.Open();
                db.ExecuteScalar<Artikel>(q, artikel);
             
            }
            throw new NotImplementedException();
        }


Und der Aufruf:


private void btnSpeichern_Click(object sender, EventArgs e)
        {
            artikelRepository.UpdateArtikel(a);
        }

Das Update wird zwar ausgeführt - also die Daten geändert - aber ich erhalte folgende Fehlermeldung:
Fehler
System.NotImplementedException: "Die Methode oder der Vorgang ist nicht implementiert."

Was ist bzw. mache ich falsch?

Thema: Performance verbessern
Am im Forum: Grundlagen von C#

Verstanden hab ich es ... hab aber eine schnelle Umsetzung gebraucht.
ABER ich arbeite mich jetzt in Repository Pattern ein.

Thema: Performance verbessern
Am im Forum: Grundlagen von C#

Die statische Methode sieht nun so aus:


...
foreach (var item in lst)
                    {
                        var query = (from w in ctx.tblwareneingang
                                     where w.Id == item
                                     select new EinkaufDaten
                                     {
                                         Id = (int)w.bestellungen_ekId,
                                         LiefermengeAbgeschlossen = w.liefermengeAbgeschlossen,
                                         GelieferteMenge = (int)w.gelieferteMenge
                                     }).ToList();

                        lstDaten.AddRange(query);
                    }
                    return lstDaten;
...



Ich habe nun die Methode ColorGridView wie folgt umgebaut.


 void ColorGridView(DataGridView dg, List<string> lst)
        {

List<EinkaufDaten> lstDaten = DB.WE_Erfolgt(lst);
            foreach (var item in lstDaten)
            {
                foreach (DataGridViewRow row in dg.Rows)
                {
                    if (row.Cells["id"].Value.ToString() == item.IdEK.ToString())
                    {
                        if ((item.MengeAbgeschlossen == true) || (item.GelieferteMenge > 0))
                        { 
                            row.Cells["WEabgeschlossen"].Style.BackColor = System.Drawing.Color.Yellow; 
                        }
                        else
                        { row.Cells["WEabgeschlossen"].Style.BackColor = System.Drawing.Color.Red; }
                    }
                }

Hoffe, dass dies nun zumindest etwas besser ist?!
Abruf der Daten erfolgt nur einmalig über DB.WE_Erfolgt.

Momentan ist es auch deutlich schneller. Es wird auch farblich markiert, aber der else Zweig für dir rote Farbe wird nie
ausgeführt. Weshalb?

Thema: Performance verbessern
Am im Forum: Grundlagen von C#

@Abt danke für deine Hilfe!
Ich werde mich mal an die Überarbeitung machen ...

Zitat
- Daten in einem Rutsch holen, nicht in n
Verstehe zwar was du damit meinst, aber wie soll es in einem Rutsch gehen? Die Daten schon beim ersten Abruf mit übergeben?
Sonst kann ich doch nur zeilenweise prüfen?!

Thema: Performance verbessern
Am im Forum: Grundlagen von C#

Hallo zusammen, ich fülle eine DataGridview und möchte anschließend zwei Spalten farbig markieren.
Soweit klappt das auch alles. Der Aufruf zum Laden/Anzeigen der Daten geht richtig schnell, nur die farbliche Markierung dauert recht lange (~10sek).
Nun wäre meine Frage, ob ein anderer Aufbau zu einer Verbesserung der Performance führt? Bzw. was ich ändern kann/soll?


dataGridView1.DataSource = dt;

Die farbliche Markierung:


void ColorGridView()
        {
            bool weKomplettAbgeschlossen = false;
            bool weTeilweiseAbgeschlossen = false;
            bool reKomplettAbgeschlossen = false;
            bool reTeilweiseAbgeschlossen = false;

            for (int n = 0; n < dataGridView1.Rows.Count; n++)
            {
                // Prüfen ob WEbereits komplett abgeschlossen wurde.
                weKomplettAbgeschlossen = AufrufWE_Abgeschlossen_Pruefen(Convert.ToInt32(dataGridView1["id", n].Value));
                if (!weKomplettAbgeschlossen)
                {
                    weTeilweiseAbgeschlossen = AufrufWE_Erfolgt(Convert.ToInt32(dataGridView1["id", n].Value));
                    if (weTeilweiseAbgeschlossen)
                    {
                        dataGridView1["WEabgeschlossen", n].Style.BackColor = System.Drawing.Color.Yellow;
                    }
                    if (!weTeilweiseAbgeschlossen)
                    {
                        dataGridView1["WEabgeschlossen", n].Style.BackColor = System.Drawing.Color.Red;
                    }
                }
                if (weKomplettAbgeschlossen)
                {
                    dataGridView1["WEabgeschlossen", n].Style.BackColor = System.Drawing.Color.Green;
                }

                // Prüfen RE komplett abgeschlossen.
                reKomplettAbgeschlossen = AufrufRE_Abgeschlossen_Pruefen(Convert.ToInt32(dataGridView1["id", n].Value));
                if (!reKomplettAbgeschlossen)
                {
                    reTeilweiseAbgeschlossen = AufrufRE_Erfolgt(Convert.ToInt32(dataGridView1["id", n].Value));
                    if (reTeilweiseAbgeschlossen)
                    {
                        dataGridView1["REabgeschlossen", n].Style.BackColor = System.Drawing.Color.Yellow;
                    }
                    if (!reTeilweiseAbgeschlossen)
                    {
                        dataGridView1["REabgeschlossen", n].Style.BackColor = System.Drawing.Color.Red;
                    }
                }
                if (reKomplettAbgeschlossen)
                {
                    dataGridView1["REabgeschlossen", n].Style.BackColor = System.Drawing.Color.Green;
                }
            }
        }


Hier mal der Aufruf AufrufWE_Erfolgt:


 public static bool AufrufWE_Erfolgt(int id)
        {
            try
            {
                using (entity ctx = new entity())
                {
                    var query = (from w in ctx.tblwareneingang
                                 where w.bestellId == id
                                 select w).ToList();

                    if (query != null)
                    {
                        foreach (tblwareneingang we in query)
                        {
                            // falls abgeschlossen.
                            if (we.liefermengeAbgeschlossen)
                                return true;
                            else
                                // falls zumindest Eintrag existiert.
                                if (we.gelieferteMenge != 0)
                                    return true;
                        }
                        return false;
                    }
                    else
                        return false;
                }
            }
            catch (Exception ex)
            {
                return false; ;
            }
        }

Thema: Double Backslash aus String entfernen
Am im Forum: Grundlagen von C#

Danke euch für die Hilfe!
Nun wird die Datei richtig abgerufen!