Autor Beitrag
tomycat
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 171
Erhaltene Danke: 1



BeitragVerfasst: So 22.11.15 12:21 
hallo,
in mysql habe ich es hinbekomme aber nicht in postgresql...

Mysql...Funkt super !!!
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
mcon.Open();
s = "select * from artikel.allgemein where barcode=" + (eingabe);
mcd = new MySqlCommand(s, mcon);
mdr = mcd.ExecuteReader();
if (mdr.Read())
{
    barcodetext.Text = "";
    labellabel.Text = eingabe;
    preisx.Text = mdr.GetString("Preis");
    bildnummerx.Text = mdr.GetString("bildnummer");
}


ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
NpgsqlCommand command = new NpgsqlCommand(SQL, conn);
NpgsqlDataReader dr = command.ExecuteReader();               
if (dr.Read())
{
    preisx.Text = dr.GetString("Preis");
    bildnummerx.Text = dr.GetString("bildnummer");
}

Bei Preis und bei bildnummer sagt VS:konvertierung von int in string nicht möglich

Das wäre jetzt meine unzufriedene Notlösung.
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
while (dr.Read())
{
    preisx.Text = dr[2].ToString();
    bildnummerx.Text = dr[3].ToString();
}

Bin für jeden Tip dankbar.

Moderiert von user profile iconTh69: Code- durch C#-Tags ersetzt
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 3738
Erhaltene Danke: 762

Win7
C++, C# (VS 2015/17)
BeitragVerfasst: So 22.11.15 13:37 
Hallo,

ich denke mal, du hast die beiden Felder in der DB jeweils als Zahlendatentyp deklariert (und nicht als String)?!
Dann probiere mal
ausblenden C#-Quelltext
1:
2:
3:
preisx.Text = dr.GetDecimal("Preis").ToString();
bildnummerx.Text = dr.GetInt32("bildnummer").ToString();
}

Das Auslesen aus der DB und das Zuweisen zu einem Steuerelement sind zwei verschiedene Dinge.

Noch besser wäre es allerdings, wenn du die Daten in einer eigenen Datenklasse halten würdest und dann diese (z.B. per DataBinding) den Steuerelementen zuweist (GUI und Persistenz sollten voneinander nichts wissen - Stichwort: 3-Schichtenarchitektur).

Für diesen Beitrag haben gedankt: tomycat
tomycat Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 171
Erhaltene Danke: 1



BeitragVerfasst: Mi 25.11.15 19:18 
ausblenden C#-Quelltext
1:
preisx.Text = dr.GetDecimal("Preis").ToString();					

der Preis hat eine rote Welle ?!
Dass wir nicht aneinander vorbei reden, Preis ist die Spalte.

Moderiert von user profile iconTh69: C#-Tags hinzugefügt
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 3738
Erhaltene Danke: 762

Win7
C++, C# (VS 2015/17)
BeitragVerfasst: Mi 25.11.15 19:49 
Dann schau doch einfach in die Doku: SqlDataReader.GetDecimal-Methode (Int32) (wie das genau bei MySql aussieht, weiß ich nicht - ich bin davon ausgegangen, daß die anderen Get-Methoden auch einen string nehmen, wie bei der von dir gezeigten GetString-Methode) oder schau dir per Intellisense die Parameter der Methode an.

Also entweder:
ausblenden C#-Quelltext
1:
dr.GetDecimal(dr.GetOrdinal("Preis")).ToString()					
oder
ausblenden C#-Quelltext
1:
dr["Preis"].ToString()					

Für diesen Beitrag haben gedankt: tomycat