Habe ein Problem.
Modernisierung/Umstellung eines ERP- Systems auf Postgre.
Nutze Visual Studio 2005, Sprache c#.
Folgende Abfrage:
.
.
string cmd = “Select * FROM e_kundbet WHERE (kdbkey=”+this.betnumm.Text+") AND (kdnkey="+this.kdhkey.Text+")";
string message = “”;
string test="";
DialogResult result;
try
{
npgsqlConnection1.Open();
this.befehl = new Npgsql.NpgsqlCommand(cmd,npgsqlConnection1);
this.myReader = befehl.ExecuteReader();
if(myReader.Read())
{
meldbox.Text=myReader.FieldCount.ToString();
this.isok=true;
this.kdsperr.Checked=lbool(myReader[3].ToString().Trim());
this.kdfibnr.Text=myReader[4].ToString();
usw usw. bis zum Feld 24:
inr = 24;
dbint8 = myReader.GetInt64(24);
meldbox.Text = meldbox.Text + " " + Convert.ToString(dbint8);
this.kdktpreis.Text=Convert.ToString(dbint8);
Column (myReader[24]) ist eine BIGINT (VS-NET int64). Hat sie einen Wert von 0, so werden die Daten (alle 72 Felder der Tabelle) fehlerfrei ausgelesen. Wird ein Wert >0 eingegeben, dann erfolgt folgende Fehlermeldung
" COLUMN INDEX OUT OF RANGE" beim Lesen des nächsten Feldes.
Der verwendete INDEX ist jedoch OK (25).
Ich vermute einen BUG in NPGSQL.
Hat jemand eine Ahnung?
Abfrage und Datenbank sind in Ordnung und laufen im PGAdmin wie geschmiert.
Erst mal ein Dankeschön
RudiDE