簡単な問題が発生しましたが、どこに問題があるのか わかりませんでした:/したがって、このチュートリアルのようにカスタムページング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