2010-02-25 5 views
0

J'ai été à travers oh tellement de tutoriels et je ne peux pas obtenir ce droit. J'essaye de remplir un gridview basé sur les résultats d'une procédure stockée. Je suis probablement aveugle de code maintenant mais j'ai vraiment essayé de m'assurer que je n'ai pas gâché quelque chose de petit.Problème stupide avec ASP.NET GridView + DataSource + SQLDataReader

Ceci est la procédure stockée:

ALTER PROCEDURE dbo.GetAllPlayersFromGame 

(
@gameID int 
)AS 
/* SELECT all the players within a game */ 

SELECT playerName FROM Player WHERE gameID = @gameID 

Voici le code que j'utilise pour créer un datatable que je puis utiliser comme source de données pour le gridview:

 public static DataTable PopulateGridView(string resultSetQuery) 
    { 
     //Populate gridview 
     OpenConnection(); 
     SqlCommand sqlCommand = new SqlCommand(resultSetQuery, _sqlConnection); 

     SqlDataReader reader = sqlCommand.ExecuteReader(); 

     DataTable dataTable = new DataTable(); 
     dataTable.Load(reader); 
     return dataTable; 
    } 

Et ceci est la méthode qui appelle tout et est censé remplir le gridview:

protected void ShowPlayersInGame() 
{ 

    GridViewShowPlayersInGame.DataSource = CreateDatabaseConnection.PopulateGridView("EXEC GetAllPlayersFromGame " + _gameId); 
    GridViewShowPlayersInGame.DataBind(); 
} 

Lorsque je débogue e toutes les données dans l'objet lecteur de sorte que la procédure stockée fonctionne. Mais quelque chose arrive quand il arrive à ShowPlayersInGame parce que le gridview ne prendra pas les données. J'ai probablement raté quelque chose de rudimentaire puisque je n'ai pas encore beaucoup utilisé la grille.

Des idées?

+0

Le GridView est-il un contrôle personnalisé avec votre propre méthode CreateChildControls? – Patrick

+0

Ehm .. si c'est quelque chose qui peut arriver quand je génère une page à partir d'une page maître alors peut-être. Je ne sais pas ce que cela signifie vraiment donc je ne suis pas sûr. Comment puis-je clarifier cela? – Phil

+0

La réponse à cette question est un non. La vue de grille se trouve dans un conteneur de contenu dans une page de contenu dérivée d'une page maître. Il est également dans un panneau de mise à jour (Ajax). Pas de contrôle personnalisé. – Phil

Répondre

1

Donc .. problème STUPID c'était.

<asp:GridView ID="GridViewShowPlayersInGame" runat="server" 
    AutoGenerateColumns="True" > 
</asp:GridView> 

j'avais AutoGenerateColumns="False"

Maintenant, il fonctionne comme prévu. Merci d'avoir lu ceci!

Questions connexes