fix MySQL

This commit is contained in:
biss committed 2026-08-18 15:44:38 +08:00
1 parent 868367855d
commit 2257ce7674
1 file changed
+5 -5
@@ -170,10 +170,10 @@ public sealed class UsersController(
{ {
while (await reader.ReadAsync(cancellationToken)) while (await reader.ReadAsync(cancellationToken))
{ {
var id = Guid.Parse(reader.GetString(0)); var id = reader.GetGuid(0);
users.Add(new UserListItem(id, reader.GetString(1), reader.GetString(2), users.Add(new UserListItem(id, reader.GetString(1), reader.GetString(2),
reader.IsDBNull(3) ? null : reader.GetString(3), reader.IsDBNull(3) ? null : reader.GetString(3),
reader.IsDBNull(4) ? null : Guid.Parse(reader.GetString(4)), reader.IsDBNull(4) ? null : reader.GetGuid(4),
Convert.ToBoolean(reader.GetValue(5)), Convert.ToBoolean(reader.GetValue(5)),
reader.IsDBNull(6) ? null : reader.GetDateTime(6), reader.IsDBNull(6) ? null : reader.GetDateTime(6),
reader.GetDateTime(7), Array.Empty<string>())); reader.GetDateTime(7), Array.Empty<string>()));
@@ -188,11 +188,11 @@ public sealed class UsersController(
"JOIN `AspNetRoles` r ON ur.`RoleId` = r.`Id` WHERE ur.`UserId` IN (" + "JOIN `AspNetRoles` r ON ur.`RoleId` = r.`Id` WHERE ur.`UserId` IN (" +
string.Join(", ", users.Select((_, index) => "@user" + index)) + ")", connection); string.Join(", ", users.Select((_, index) => "@user" + index)) + ")", connection);
foreach (var (user, index) in users.Select((user, index) => (user, index))) foreach (var (user, index) in users.Select((user, index) => (user, index)))
rolesCommand.Parameters.AddWithValue("@user" + index, user.Id.ToString()); rolesCommand.Parameters.AddWithValue("@user" + index, user.Id);
await using var roleReader = await rolesCommand.ExecuteReaderAsync(cancellationToken); await using var roleReader = await rolesCommand.ExecuteReaderAsync(cancellationToken);
while (await roleReader.ReadAsync(cancellationToken)) while (await roleReader.ReadAsync(cancellationToken))
{ {
var userId = Guid.Parse(roleReader.GetString(0)); var userId = roleReader.GetGuid(0);
if (!rolesByUser.TryGetValue(userId, out var roles)) rolesByUser[userId] = roles = []; if (!rolesByUser.TryGetValue(userId, out var roles)) rolesByUser[userId] = roles = [];
roles.Add(roleReader.GetString(1)); roles.Add(roleReader.GetString(1));
} }
@@ -216,7 +216,7 @@ public sealed class UsersController(
var command = new MySqlCommand(sql, connection); var command = new MySqlCommand(sql, connection);
if (!string.IsNullOrWhiteSpace(keyword)) command.Parameters.AddWithValue("@keyword", keyword.Trim()); if (!string.IsNullOrWhiteSpace(keyword)) command.Parameters.AddWithValue("@keyword", keyword.Trim());
if (!string.IsNullOrWhiteSpace(roleName)) command.Parameters.AddWithValue("@roleName", roleName.Trim()); if (!string.IsNullOrWhiteSpace(roleName)) command.Parameters.AddWithValue("@roleName", roleName.Trim());
if (collegeId.HasValue) command.Parameters.AddWithValue("@collegeId", collegeId.Value.ToString()); if (collegeId.HasValue) command.Parameters.AddWithValue("@collegeId", collegeId.Value);
if (isEnabled.HasValue) command.Parameters.AddWithValue("@isEnabled", isEnabled.Value); if (isEnabled.HasValue) command.Parameters.AddWithValue("@isEnabled", isEnabled.Value);
return command; return command;
} }