Не могу обновить таблицу в SQL c # - PullRequest
3 голосов
/ 29 марта 2012

У меня есть стол под названием Город, который содержит связь между зданиями игроков и игроков.Таблица имеет следующие столбцы: userid (int) номер buildingid (int) (int)

Я успешно вставил новое здание для игрока, и теперь у меня возникают проблемы с обновлением определенной строки для игрока.*

У меня есть этот код:

if (!existPlayerBuilding(userid, buildingid))
            {
                SqlConnection sqlcon = new SqlConnection(connectionString);
                string query = "INSERT INTO Town VALUES(@userid, @buildingid, @number)";
                SqlCommand sqlcom = new SqlCommand(query, sqlcon);

                sqlcom.Parameters.Add("@userid", userid);
                sqlcom.Parameters.Add("@buildingid", buildingid);
                sqlcom.Parameters.Add("@number", number);

                try
                {
                    sqlcon.Open();
                    sqlcom.ExecuteNonQuery();
                    sqlcon.Close();
                }
                catch (Exception i)
                {
                    lblTestlabel.Text = "SQL FEILET";
                }
                lblTestlabel.Text = "Bygningen ble kjøpt!!!!";
            }
            else
            {
                SqlConnection sqlcon = new SqlConnection(connectionString);
                string query = "UPDATE Town VALUES(@userid, @buildingid, @number) WHERE userid = @userid AND buildingid = @buildingid";
                SqlCommand sqlcom = new SqlCommand(query, sqlcon);

                sqlcom.Parameters.Add("@userid", userid);
                sqlcom.Parameters.Add("@buildingid", buildingid);
                sqlcom.Parameters.Add("@number", number);

                try
                {
                    sqlcon.Open();
                    sqlcom.ExecuteNonQuery();
                    sqlcon.Close();
                }
                catch (Exception i)
                {
                    lblTestlabel.Text = "SQL FEILET";
                }
                lblTestlabel.Text = "Bygningen ble kjøpt!!!!";
            }

Метод existPlayerBuilding возвращает true, если у игрока уже есть здание с данным идентификатором, и false в противном случае.Когда я запускаю и проверяю, могу ли я обновить номер для пользователя, ничего не происходит.

Ответы [ 2 ]

10 голосов
/ 29 марта 2012

Синтаксис для обновления в SQL будет

UPDATE Town
SET number = @number 
WHERE userid = @userid AND buildingid = @buildingid
6 голосов
/ 29 марта 2012

Ваш запрос на обновление неверен:

UPDATE Town
SET number = @number
WHERE userid = @userid AND buildingid = @buildingid
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...