По какой-то причине приведенный ниже код на самом деле работает только один раз после стрельбы (и иногда дважды, если мне повезет).
После этого он возвращает res > 0
, но строка в базе данных не изменяется. Любая идея, почему это происходит и как я могу это исправить?
Я уже пытался избавиться от объекта DbCommand
(как вы можете видеть).
public static async Task<bool> SetWallpaper(CornUser User, ulong ID)
{
using (DbCommand dbCommand = DbProviderFactory.CreateCommand())
{
dbCommand.Connection = SQLConnection;
dbCommand.CommandText = @"
UPDATE Users
SET Wallpaper = @Wallpaper
WHERE DiscordID = @DISCORDID";
dbCommand.Parameters.Add(new SqlParameter("@DISCORDID", System.Data.SqlDbType.BigInt) { Value = User.ID });
dbCommand.Parameters.Add(new SqlParameter("@Wallpaper", System.Data.SqlDbType.Int) { Value = ID });
dbCommand.Prepare();
int res = await dbCommand.ExecuteNonQueryAsync();
return (res > 0);
}
}
Я бы ожидал, что он на самом деле изменит столбец Wallpaper
на ID
, предоставленный постоянно.