Meine FunktionCasting mysql Leser Zeichenfolge führen löst eine Ausnahme in C#
public Permission[] GetPermissionsForGroupID(string groupID)
{
MySqlCommand command = new MySqlCommand();
command.Connection = connection;
command.CommandText = "SELECT `permissions`.`permissionName`, `groups_permissions`.`permissionValue`
FROM `db`.`groups_permissions`, `db`.`permissions`
WHERE `permissions`.`permissionID` = `groups_permissions`.`permissionID`
AND `groups_permissions`.`groupID` = '" + groupID + "'";
MySqlDataReader reader = command.ExecuteReader();
List<Permission> permissions = new List<Permission>();
while (reader.Read())
{
permissions.Add(new Permission((string)reader[0], (int)reader[1]));
}
reader.Close();
return permissions.ToArray();
}
eine System.InvalidCastException bei
permissions.Add(new Permission((string)reader[0], (int)reader[1]));
wirft
ich es verengt (string)reader[0]
nach unten, wo ein varchar
sollte in ein gegossen werden string
.
reader[0] = permissions.permissionName = varchar
Was könnte das Problem sein?
EDIT:
Der Wert des Lesers [0] ist eine Zeichenfolge "kick_user_power" und der Wert von reader[1]
eine ganze Zahl "75".
EDIT 2:
Der Konstruktor von Permission
public Permission(string permissionName, int permissionPower)
{
PermissionName = permissionName;
PermissionPower = permissionPower;
}
Und zur besseren Visualisierung werden die Werte von reader[0]
und reader[1]
:
Was ist der Wert der Leser [0] verwendet werden soll, und, was das betrifft, der Leser [1]? –
und der Konstruktor für die Permission-Klasse - wie sieht das aus? –