Nicht anwenden Indizierung mit [] auf einen Ausdruck vom Typ 'Methode-Gruppe'
Nachdem die Ausführung der Abfrage wird das Ergebnis brauche ich, um zu nehmen ist Benutzernamen Teil.
Ich bin gettting eine Fehlermeldung: kann Nicht angewendet werden, der Indizierung mit [] auf einen Ausdruck vom Typ 'Methode-Gruppe'
public class ProcessInput
{
string connectionString = (string)ConfigurationSettings.AppSettings["myConString"];
private string msg_arr;
string username = null;
private void MooseSeenInput(string MobileNo, string Date, string odd, params Array[] msg_arr)
{
SqlConnection conn = new SqlConnection(myConString);
conn.Open();
SqlCommand com = new SqlCommand("SELECT * FROM Users as users WHERE UserName=@UserName AND State!='1' AND State!='4'", conn);
com.Parameters.AddWithValue("@UserName", UserName);
//com.ExecuteNonQuery();
using (SqlDataReader reader = com.ExecuteReader())
{
if (reader.HasRows)
{
while (reader.Read())
{
String UserNames = (reader.Read["users"]);
}
}
}
}
}
Fehler ist aufgetreten in Zeile:
String UserNames = (reader.Read["users"]);
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihre Fehler ein compiler-Fehler, als Sie versuchten, sich zu bewerben index-syntax auf eine Methode aufrufen, die in C# beinhaltet Klammern.
Den
SqlDataReader
nicht aussetzen, ein indexer, aber es ist auf dem reader selbst, nicht eine Methode Mitglied:Dies ist, wie ich Neige dazu, diese Art code:
Hinweis, dass ich bitte den Leser, für den die Ordnungszahl vor der Iteration eine unbekannte Anzahl von Datensätzen. Dies ist gut aus zwei Gründen:
Verwenden
Und wie @leppie wies in seinem Kommentar, Sie können auch den Namen des Feldes als indexer
Also angenommen, das Feld heißt
users
Sie können auch schreiben dies:ToString
schlagen könnte eine null oder etwas, das nicht einen string, und hart codierte Ordinalzahl ist in der Regel nicht eine gute Idee.!reader.IsDBNull(ordinalPos)
, aber enthält das Feld DBNull.Wert, dann wird die ToString() übersetzt eine Zeichenkette.Leer und ich weiß nicht, ob dies ist, was der Benutzer benötigt.Ziemlich sicher, dass du nur tun willst:
as
nicht dazu führen, dass ungültige cast Ausnahmen).(string)val
sind nicht gleichwertig. Beim Empfang einer WertToString
geben Sie einen string, auch wenn der Datentyp in SQL hat sich geändert. Könnte dies ein problem sein. Ich Neige zu bevorzugen, die eine Umwandlung von erwarteten Daten-Typen, so dass, wenn Sie sich ändern, der code schlägt fehl, und die änderung wird die Sichtbarkeit.