Search code examples
sqlwebmatrix-2razor-2

How to Update All Rows of Table SQL


Below is my code:

@{

    Layout = "/_SiteLayout.cshtml";
    var db = Database.Open("MyDatabase");

    var query = "SELECT * FROM Team";
    var Teams = db.Query(query);
 }

    <form>
        <table>
        <tr>
            <td>Team Name</td>
            <td>Played</td>
            <td>Points</td>
        </tr>
  @{  foreach(var Team in Teams){
        <tr>
            <td>@Team.TeamName</td>
            <td><input type="text" value="@Team.Played" name="Played"/></td>
            <td><input type="text" value="@Team.Points" name="Points"/></td>
        </tr>
    }    
   }        
        </table>
    </form>

This is the result:

enter image description here

So what I want to do is update my whole table.

What is the SQL query to do this? I want to update Points and Games Played in my database for all teams once the form is posted.


Solution

  • Following is My Solution. Anyone have an efficient Solution?

    @{

    var db = Database.Open("MYDATABSE");
    
    var query = "SELECT * FROM Team";
    var Teams = db.Query(query);
    var InsertQuery = "";
    if(IsPost){
    
       foreach(var Team in Teams){
           var Points = Request[Team.TeamName];
           var TeamId = Team.TeamId.ToString();
           var Played = Request[TeamId];
    
           var executeQueryString="UPDATE Team Set Points=@0, Played=@1 WHERE TeamId=@2";
           db.Execute(executeQueryString, Points, Played, Team.TeamId);
    
       }
       Response.Redirect("~/UpdateTable.cshtml");
    
    }
    

    }

    <br /><br />
    
    
     <form  action="" method="post">
            <table>
            <tr>
                <td><h5>Team Name</h5></td>
                <td><h5>Played</h5></td>
                <td><h5>Points</h5></td>
            </tr>
      @{  foreach(var Team in Teams){
            <tr>
                <td>@Team.TeamName</td>
                <td><input type="text" value="@Team.Played" name="@Team.TeamId"/></td>
                <td><input type="text" value="@Team.Points" name="@Team.TeamName"/></td>
            </tr>
        }    
       }