Benutzerdefinierte SQL Select-statement, die keine data in GridView anzeigt

SELECT LeagueTable.P, LeagueTable.W, LeagueTable.D, LeagueTable.L, LeagueTable.GF, LeagueTable.GA, LeagueTable.GD, LeagueTable.Pts, Team.Team_name, LeagueTable.Team_ID FROM LeagueTable INNER JOIN Team ON LeagueTable.Team_ID = Team.Team_ID 

Bildbeschreibung hier eingeben

Ich habe den Benutzer, um einen Team-Namen bei der Inbetriebnahme, die in die Team Tabelle eingegeben wird, die Umleitung auf eine Webseite mit einer Liga-Tabelle. Die Tabellen-Tabelle enthält zunächst keine data, aber sie sollte eine Zeile mit den Benutzereingaben anzeigen, sobald der Benutzer auf diese Seite gelangt ist.

Diese Abfrage zeigt jedoch die GridView als leer an. Was stimmt damit nicht?

 asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1" EmptyDataText="No teams entered into the table."> <Columns> <asp:BoundField DataField="P" HeaderText="P" SortExpression="P" /> <asp:BoundField DataField="W" HeaderText="W" SortExpression="W" /> <asp:BoundField DataField="D" HeaderText="D" SortExpression="D" /> <asp:BoundField DataField="L" HeaderText="L" SortExpression="L" /> <asp:BoundField DataField="GF" HeaderText="GF" SortExpression="GF" /> <asp:BoundField DataField="GA" HeaderText="GA" SortExpression="GA" /> <asp:BoundField DataField="GD" HeaderText="GD" SortExpression="GD" /> <asp:BoundField DataField="Pts" HeaderText="Pts" SortExpression="Pts" /> <asp:BoundField DataField="Team_name" HeaderText="Team_name" SortExpression="Team_name" /> <asp:BoundField DataField="Team_ID" HeaderText="Team_ID" SortExpression="Team_ID" /> </Columns> </asp:GridView> protected void NewTeamBtn_Click(object sender, EventArgs e) { string qry1 = "INSERT into Team (Team_name) VALUES (@Team_name)"; using (SqlCommand cmd = new SqlCommand(qry1, con)) { cmd.Parameters.Add(("@Team_name"), SqlDbType.VarChar).Value = NewTeamTxtBox.Text; cmd.CommandType = CommandType.Text; con.Open(); cmd.ExecuteNonQuery(); con.Close(); } Response.Redirect("EnterData.aspx"); } <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:SportsData2ConnectionString %>" SelectCommand="SELECT LeagueTable.League_ID, LeagueTable.Team_ID, LeagueTable.P, LeagueTable.W, LeagueTable.D, LeagueTable.L, LeagueTable.GF, LeagueTable.GA, LeagueTable.GD, LeagueTable.Pts, Team.Team_name FROM LeagueTable INNER JOIN Team ON LeagueTable.Team_ID = Team.Team_ID"></asp:SqlDataSource> 

Basierend auf Ihren Kommentaren scheint es, dass Sie data in Ihre Team-Tabelle insert können, aber wenn Sie die select-statement ausführen, die Sie in Ihrer SQL-dataquelle haben, werden Sie feststellen, dass Sie einen Inner Join . Dass Inner Join bedeutet, dass, wenn die Team-ID ist nicht in einem der 2 Tabellen, die Sie join, dann werden keine Ergebnisse zurückgegeben werden.

Ich sehe nicht Ihre SQL-data-Source-Code, aber ein weiterer möglicher Punkt des Scheiterns ist die TeamID Sie in diese Kontrolle übergeben. Es gibt 3 Fragen, die mir in den Sinn kommen, um sicherzustellen, dass Sie gültige data erhalten.

1) Woher kommst du davon?

2) Ist es gültig und in beiden Tabellen?

3) Benötigen Sie die Gridview nach dem Setzen dieses Wertes?

Bearbeiten

Was Sie tun möchten, stimmt überhaupt nicht mit Ihrer Frage überein. Du solltest deinen Titel und deine Frage bearbeiten.

Ich würde so etwas für deinen deployment verwenden.

 DECLARE @TeamID as INT INSERT into Team (Team_name) VALUES (@Team_name) SELECT @TeamID = SCOPE_IDENTITY(); INSERT into LeagueTable Team_ID VALUES @TeamID 

Dieser Beitrag hilft Scope_Identity vs @@ Identity

diese Stack-Frage wird auch helfen.