Alte Frage, aber vielleicht braucht noch jemand eine Antwort
In der Praxis habe ich dieses Problem folgendermaßen umgangen
Für int :
public static object GatDataInt(string Query, string Column)
{
SqlConnection DBConn = new SqlConnection(ConnectionString);
if (DBConn.State == ConnectionState.Closed)
DBConn.Open();
SqlCommand CMD = new SqlCommand(Query, DBConn);
SqlDataReader RDR = CMD.ExecuteReader();
if (RDR.Read())
{
var Result = RDR[Column];
RDR.Close();
DBConn.Close();
return Result;
}
return 0;
}
dasselbe für String, nur dass "" anstelle von 0 zurückgegeben wird, da "" ein leerer String ist
Sie können es also verwenden wie
int TotalPoints = GatDataInt(QueryToGetTotalPoints, TotalPointColumn) as int?;
y
string Email = GatDatastring(QueryToGetEmail, EmailColumn) as string;
sehr flexibel, so dass Sie eine beliebige Abfrage einfügen können, um eine beliebige Spalte zu lesen, und sie wird nie mit einem Fehler zurückkehren