无法在SQL中更新表c#

Twi*_*tar 3 .net c# sql t-sql sql-server

我有一张名为Town的桌子,它掌握着玩家与球员建筑之间的关系.该表包含以下列:userid(int)buildingid(int)number(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!!!!";
            }
Run Code Online (Sandbox Code Playgroud)

如果玩家已经拥有具有给定id的建筑物,则existsPlayerBuilding方法返回true,否则返回false.当我运行并测试我是否可以为用户构建更新号码时没有任何反应.

Jam*_*iec 10

SQL中更新的语法是

UPDATE Town
SET number = @number 
WHERE userid = @userid AND buildingid = @buildingid
Run Code Online (Sandbox Code Playgroud)


Dar*_*ren 6

您的更新查询错误:

UPDATE Town
SET number = @number
WHERE userid = @userid AND buildingid = @buildingid
Run Code Online (Sandbox Code Playgroud)