*Markus: Wie WHERE-Bedingung in C# übergeben?

Beitrag lesen

Hallo,

ich habe schon alles mögliche versucht, aber selbst in der Microsoft-Referenz sieht die Syntax so aus, wie ich sie auch anwende:

public String[,] PrintSex(string s)   {
   String[,] datensatz = new String[6,2];
 try  {
   OleDbCommand command = new OleDbCommand("SELECT vorname, gebJahr FROM person1 WHERE geschlecht = ?", connection);
 try   {

command.Parameters.Add("@geschlecht", OleDbType.Char).Value = s;

}

catch (OleDbException exc)  {

Console.WriteLine("Fehler: " + exc.Message);

}
 OpenConnection();
       OleDbDataReader reader = command.ExecuteReader();
       int i = 0;
       while (reader.Read())   {
                for (int j = 0; j < 2; j++)
                    datensatz[i,j] = reader.GetValue(j).ToString();
                     i++;
             }
        }
 catch (OleDbException ex)  {
  Console.WriteLine("Fehler: " + ex);
       }
 catch (InvalidCastException cex)   {
   Console.WriteLine("Fehler: " + cex);
 }
 catch (NullReferenceException nre)   {
    Console.WriteLine("Fehler: " + nre);
       }
CloseConnection();

Warum aber immer diese Meldung kommt ist mir schleierhaft:

Error at Line : syntax error near ?
Fehler: System.NullReferenceException: Object reference not set to an instance of an object
  at DataReader.PrintSex (System.String s) [0x00000]

Ich glaub allmählich, dass Mono wieder mal irgend etwas nur unzureichend implementiert hat, sodass diese Funktion fehlerhaft ist, was auch der Grund ist, warum ich hier keine Collection anwenden kann, und zur Probe auf ein mehrdimensionales Array ausweichen muss.

Markus