5
Answers

StoredProcedure doesnt return any value

Ask a question
Hi i got simple problem but i got no idea about where is problem :/ So in my GridView i using ObjectDataSource with custom paging like in this tutorialhttp://www.codedigest.com/Articles/ASPNET/180_Custom_GridView_Paging_with_ObjectDataSource_Control_with_ASPNet_20.aspx Here is my code aspx:
<asp:ObjectDataSource ID="ObjectDataSource2" 
        runat="server" 
        onselecting="ObjectDataSource2_Selecting"
        EnablePaging="true"
        SelectCountMethod="GetItemsCount"
        SelectMethod="BindItems"
        StartRowIndexParameterName="startRowIndex"
        MaximumRowsParameterName="maximumRows"
        TypeName="eSova.Utilities.RecordUtilities" >
And method which calling:
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
And finally StoredProcedure
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
My storedProcedure work just fine and return in all items from table. But when i analyze code i got breakpoint on return and table variable is without records. Also i cant debugg stored procedure cause i dont have permission on server sysadmin but just I got dbowner.
I use .Net 4, MS SQL Server 2012 and version of Management studio is 11.0.






Answers (5)