我经历了很多教程,但我无法做到这一点。我正在尝试根据存储过程的结果填充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,所以我可能错过了一些基本的东西。
有什么想法吗?
答案 0 :(得分:1)
所以..这是愚蠢的问题。
<asp:GridView ID="GridViewShowPlayersInGame" runat="server"
AutoGenerateColumns="True" >
</asp:GridView>
我有AutoGenerateColumns="False"
现在它按预期工作。感谢您阅读此内容!