0

簡単な問題が発生しましたが、どこに問題があるのか​​ わかりませんでした:/したがって、このチュートリアルのようにカスタムページングGridViewを使用していますObjectDataSource

これが私のaspxマークアップです:

<asp:ObjectDataSource ID="ObjectDataSource2" 
        runat="server" 
        onselecting="ObjectDataSource2_Selecting"
        EnablePaging="true"
        SelectCountMethod="GetItemsCount"
        SelectMethod="BindItems"
        StartRowIndexParameterName="startRowIndex"
        MaximumRowsParameterName="maximumRows"
        TypeName="eSova.Utilities.RecordUtilities" 
         >

そして呼び出すメソッド:

  public static DataTable BindItems(int category,int search,int startRowIndex,int maximumRows)
    {
        DataTable table = new DataTable();
        using (SqlConnection connection = new SqlConnection())
        {
            ConnectionUtilities.OpenConnection(connection);
            SqlTransaction transaction = connection.BeginTransaction();
            try
            {
                SqlCommand command = new SqlCommand("GetItems",connection,transaction);
                command.CommandType = CommandType.StoredProcedure;
                command.Parameters.Add("@RowIndex", SqlDbType.Int, 4).Value = startRowIndex;
                command.Parameters.Add("@MaxRows", SqlDbType.Int, 4).Value = maximumRows;
                SqlDataAdapter adapter = new SqlDataAdapter(command);
                adapter.Fill(table);
                transaction.Commit();
            }
            catch
            {
                transaction.Rollback();
            }
        }
        return table;
    }

私のストアド プロシージャは問題なく動作し、テーブルのすべてのアイテムを返します。

しかし、コードを分析すると、戻り時にブレークポイントが発生し、テーブル変数にレコードがありません。どこに問題があるのか​​わからない。

アップデート:

create proc [dbo].[GetItems](@RowIndex int,@MaxRows int) 
as 
    declare @StartRows int 
    declare @EndRow int 

    set @StartRows=(@RowIndex+1) 
    set @EndRow=(@StartRows+@MaxRows) 

    select * 
    from ( select  id, name, filepath, descript, itemlanguage, 
           filetypeid, ROW_NUMBER() over (ORDER by id)as row  FROM Items)as NumberesItems 
    where row between @StartRows and @EndRow
4

1 に答える 1