Laden...

Abfrage mit Dapper aber DataGridView bleibt leer

Erstellt von NEUMee vor 5 Jahren Letzter Beitrag vor 5 Jahren 1.880 Views
N
NEUMee Themenstarter:in
24 Beiträge seit 2011
vor 5 Jahren
Abfrage mit Dapper aber DataGridView bleibt leer

verwendetes Datenbanksystem: <IBM DB2>

Hallo zusammen,

ich habe das Problem, dass mein DataGridView nach Abfrage auf das DBMS leer bleibt.

Also, die Anzahl der DataGridView Rows stimmt, aber die Werte in den Spalten des DataGridViews bleiben bei Strings leer und bei numerischen Werten 0.

Für mich heißt das, dass die zurückgelieferte List<ErpData> nicht leer ist, weil ja die korrekte Anzahl der Datensätze angezeigt werden, nur die Daten eben nicht.

Ich weiß jetzt nicht, woran das liegt. Könnt ihr mir einen Tipp geben?


namespace Projektname.Models
{
    public class ErpData
    {
        public int Id { get; set; }
        public string Auftrag { get; set; }
        public string Pos { get; set; }
        public string Artikel { get; set; }
        public string Material { get; set; }
        public string Kategorie { get; set; }
        public Single Menge1 { get; set; }
        public Single Menge2 { get; set; }
    }
}


public IList<ErpData> GetErpDataByOrder()
{
            string qryErpData = "SELECT bla FROM blubb WHERE Auftragsnummer =  @paramId";
            System.Diagnostics.Debug.Print("QUERY: " + qryErpData);

            using (IDbConnection db = new iDB2Connection(ConfigurationManager.ConnectionStrings["csAs400"].ConnectionString))
            {
                if (db.State == ConnectionState.Closed)
                {
                    db.Open();
                    return db.Query<ErpData>(qryErpData, new { paramId = textBoxSpool.Text }).ToList();
                }
            }

            return null;
        }


private void button1_Click(object sender, EventArgs e)
{
    dataGridView1.DataSource = GetErpDataByOrder();
}

1.029 Beiträge seit 2010
vor 5 Jahren

Hi,

nach deinen Schilderungen ist davon auszugehen, dass die Daten zumindest ankommen.

Dementsprechend musst du nun die Einstellungen deines DataGridViews kontrollieren.

Zum einen gibt es einen Modus, in welchem automatisch Columns erstellt werden, zum anderen kann man das manuell machen und muss entsprechend die Bindungseinstellungen festlegen.

Was davon hast du wie getan?

LG

16.806 Beiträge seit 2008
vor 5 Jahren

Bedenke, dass Du hier gerade eine Schichtverletzung hast:
Dein Modell wird 1:1 von Datenbank, durch die Business-Schicht in die UI geschubst - und Du hast Datenbank-Code in Deiner UI.
Darüber hinaus übergibst Du ein UI Element direkt an eine Datenbank-Abfrage.
Modularität hast Du damit von Beginn an ausgeschlossen 😉

Eigentlich ist da schon vorprogrammiert, dass das knrischen wird 😉
[Artikel] Drei-Schichten-Architektur

PS: Wenn man mit Listen arbeitet gibt man eine leere Liste bei keinen Treffern zurück, und nicht null.

N
NEUMee Themenstarter:in
24 Beiträge seit 2011
vor 5 Jahren

Hallo, ich habe alles automatisch (Standard) gelassen. Die Spaltennamen werden ja auch analog meines ORM generiert.

709 Beiträge seit 2008
vor 5 Jahren

Was sagt denn der Debugger, was in den zurückgegebenen Objekten steht?

N
NEUMee Themenstarter:in
24 Beiträge seit 2011
vor 5 Jahren

Bei string Values: null
Bei Numerischen WErten: 0

N
NEUMee Themenstarter:in
24 Beiträge seit 2011
vor 5 Jahren

Also am DGV liegts wahrscheinlich nicht.
Wenn ich die Liste durchgehe und ausgeben lasse, erhalte ich ebenfalls leere Strings und Nullen bei numerischen Werten.

Y
102 Beiträge seit 2005
vor 5 Jahren

Hallo,
Stimmen die Namen deiner Properties mit den Namen der Spalten in der Tabelle überein?

16.806 Beiträge seit 2008
vor 5 Jahren

Wenn ich die Liste durchgehe und ausgeben lasse, erhalte ich ebenfalls leere Strings und Nullen bei numerischen Werten.

Spricht alles dafür, dass die Tabellenrückgabe nicht Deinem Modell entspricht und damit nichts gemappt werden kann.

N
NEUMee Themenstarter:in
24 Beiträge seit 2011
vor 5 Jahren

Aber ich habe die Datentypen nochmal mit denen der Datenbank abgeglichen und kann keine Unstimmigkeiten finden

709 Beiträge seit 2008
vor 5 Jahren

Stimmt denn auch die Benennung 1:1?

N
NEUMee Themenstarter:in
24 Beiträge seit 2011
vor 5 Jahren

Oh man ...

Entschuldigt bitte, dass ich eure Zeit geraubt habe. Das Problem ist gelöst. Natürlich hatte sich ein Fehler bei der Spaltenbenennung eingeschlichen. 🤔