ASP.NET GridView + DataSource + SQLDataReader的愚蠢问题

时间:2010-02-25 10:32:25

标签: c# asp.net gridview

我经历了很多教程,但我无法做到这一点。我正在尝试根据存储过程的结果填充gridview。我现在可能是代码盲目但我真的试图确保我没有搞砸一些小事。

这是存储过程:

ALTER PROCEDURE dbo.GetAllPlayersFromGame

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

SELECT playerName FROM Player WHERE gameID = @gameID

这是我用来创建数据表的代码,然后我将其用作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;
    }

这是调用所有内容并且应该填充gridview的方法:

protected void ShowPlayersInGame()
{

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

当我调试时,我会看到reader对象中的所有数据,因此存储过程可以正常工作。但是当它到达ShowPlayersInGame时会发生一些事情,因为gridview不会获取数据。因为我以前没有使用过gridview,所以我可能错过了一些基本的东西。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

所以..这是愚蠢的问题。

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

我有AutoGenerateColumns="False"

现在它按预期工作。感谢您阅读此内容!