@NeoLight2

Почему у меня не получается изменить значение поля SQL в C#?

У меня по какой то причине не получается изменить поле в SQL, пробовал с заглушками и без, ноль. Вот код:
public static void Main(string[] args)
        {
            const string info = "Server=localhost;Database=unturned2;Uid=root;pwd=root;charset=utf8";
            MySqlConnection mycon = new MySqlConnection(info);
            const string insert = "INSERT INTO wallets (steamid,balance) VALUES (@id , @bal)";


            try
            { 
                mycon.Open();
                Console.WriteLine("Successfully connected!");
                MySqlCommand command = new MySqlCommand(insert, mycon);
                command.Parameters.Add("@id", MySqlDbType.VarChar).Value = "76561198928736885";
                command.Parameters.Add("@bal", MySqlDbType.Double).Value = 500;
                if(command.ExecuteNonQuery() != 1)
                {
                    Console.WriteLine("Error");
                }
                MySqlCommand changebal = new MySqlCommand("UPDATE wallets SET balance=0 WHERE steamid=76561198928736885", mycon);
                if(changebal.ExecuteNonQuery() != 1)
                {
                    Console.WriteLine("Error occured with changing");
                }

            }
            catch(Exception ex)
            {
                Console.WriteLine($"Error occured, {ex.Message}");
            }
            finally
            {
                mycon.Close();
            }
        }

5fb121f6e859e455168663.png
Помогите пожалуйста, заранее спасибо))
  • Вопрос задан
  • 60 просмотров
Пригласить эксперта
Ответы на вопрос 2
firedragon
@firedragon
Senior .NET developer
https://dapper-tutorial.net/

string sql = "INSERT INTO wallets (steamid,balance) VALUES (@id , @bal);";

using (var connection = new SqlConnection(info))
{
      var affectedRows = connection.Execute(sql, new {id, bal});
      Console.WriteLine(affectedRows);
     sql = "UPDATE wallets SET balance=0 WHERE steamid=@id";
     var id =76561198928736885;
     var affectedRows = connection.Execute(sql, new {id});
}
Ответ написан
@os9
1. В кавычки строковое поле заключите (оно ведь строковое?), аккуратнее с типами.
2. Скопипастите оба ваши запроса и выполните руками где-то в приложении работы с БД.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы