【问题标题】:Stupid problem with ASP.NET GridView + DataSource + SQLDataReaderASP.NET GridView + DataSource + SQLDataReader 的愚蠢问题
【发布时间】:2011-01-20 22:54:40
【问题描述】:

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

这是存储过程:

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();
}

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

有什么想法吗?

【问题讨论】:

  • GridView 是否在自定义控件中使用您自己的 CreateChildControls 方法?
  • Ehm.. 如果我从母版页生成页面时可能会发生这种情况。我不知道这真正意味着什么,所以我不确定。我该如何澄清这一点?
  • 这个问题的答案是否定的。网格视图位于从母版页派生的内容页中的内容占位符中。它也在更新面板(Ajax)中。没有自定义控件。

标签: c# asp.net gridview


【解决方案1】:

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

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

我有AutoGenerateColumns="False"

现在它按预期工作。感谢您阅读本文!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-24
    • 1970-01-01
    • 2015-07-11
    • 1970-01-01
    • 2011-06-09
    • 1970-01-01
    • 1970-01-01
    • 2010-12-10
    相关资源
    最近更新 更多