Глупая проблема с ASP.NET GridView + DataSource + SQLDataReader - PullRequest
0 голосов
/ 25 февраля 2010

Я прошел через очень много уроков, и я просто не могу понять это правильно. Я пытаюсь заполнить сетку на основе результатов хранимой процедуры. Я, наверное, до сих пор слеп, но я действительно пытался убедиться, что я ничего не испортил.

Это хранимая процедура:

ALTER PROCEDURE dbo.GetAllPlayersFromGame

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

SELECT playerName FROM Player WHERE gameID = @gameID

Это код, который я использую для создания таблицы данных, которую затем использую в качестве источника данных для вида сетки:

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

И это метод, который вызывает все и должен заполнять сетку:

protected void ShowPlayersInGame()
{

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

Когда я отлаживаю, я вижу все данные в объекте чтения, поэтому хранимая процедура работает. Но что-то происходит, когда он попадает в ShowPlayersInGame, потому что gridview не будет принимать данные. Я, вероятно, пропустил что-то элементарное, так как раньше не очень часто использовал gridviews.

Есть идеи?

1 Ответ

1 голос
/ 25 февраля 2010

Итак. Глупая проблема.

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

у меня было AutoGenerateColumns="False"

Теперь все работает как задумано. Спасибо за то, что прочитали это!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...