을 통해 채울 나는이 ObjectDataSource
GRIDVIEW ObjectDataSource를이 저장 프로 시저
<asp:ObjectDataSource
ID="oDataSourceHistoricoDoencasCliente" runat="server"
DeleteMethod="DeleteById"
InsertMethod="Insert"
SelectMethod="SelectByIdCliente"
TypeName="SOSSemTempo.BusinessObjects.Pessoa.HistoricoDoencasCliente">
<DeleteParameters>
<asp:Parameter Name="Id" Type="Int32" />
</DeleteParameters>
<InsertParameters>
<asp:Parameter Name="IdCliente" Type="Int32" />
<asp:Parameter Name="IdDoenca" Type="Int32" />
</InsertParameters>
<SelectParameters>
<asp:QueryStringParameter Name="IdCliente" QueryStringField="Id" Type="Int32" DefaultValue="NULL" />
</SelectParameters>
<UpdateParameters>
<asp:Parameter Name="Id" Type="Int32" />
<asp:Parameter Name="IdDoenca" Type="Int32" />
</UpdateParameters>
</asp:ObjectDataSource>
내가 저장 프로 시저에서 SelectMethod
SelectByIdCliente
받을 수있는 데이터를 사용하는 것을 시도하고있다. 그러나 페이지가로드 될 때 메서드가 호출되고 (중단 점을 사용하여 확인) 메서드는 예상 행을 사용하여 DataReader
을 반환하지만 메서드를 실행하면 그리드가 비어있는 것으로 표시됩니다.
이것은 SelectByIdCliente
방법 :
public SqlDataReader SelectByIdCliente(int IdCliente)
{
return Database.ExecuteStoredProcedureDataReader("sprSelectHistoricoDoencaCliente", new string[] { "IdCliente" }, new object[] { IdCliente });
}
public static SqlDataReader ExecuteStoredProcedureDataReader(string strStoredProcedureName, string[] strParameters, object[] oValues)
{
return GetSqlCommand(strStoredProcedureName, strParameters, oValues).ExecuteReader(CommandBehavior.CloseConnection);
}
private static SqlCommand GetSqlCommand(string strStoredProcedureName, string[] strParameters, object[] oValues)
{
if (strParameters.Length != oValues.Length)
throw new Exception("Numero de parametros e valores não batem.");
SqlConnection conn = Database.GetConnection();
conn.Open();
SqlCommand cmd = new SqlCommand(strStoredProcedureName, conn);
cmd.CommandType = CommandType.StoredProcedure;
for (int i = 0; i < strParameters.Length; i++)
{
cmd.Parameters.AddWithValue(strParameters[i], oValues[i]);
}
return cmd;
}
사람이 내가 뭘 놓친 거지가 알고 있습니까?
UPDATE : GridView
내 실수를받은 ObjectDataSource
<asp:GridView
ID="gvHistoricoDoencaCliente"
runat="server"
AllowPaging="True"
AllowSorting="true"
DataSourceID="oDataSourceHistoricoDoencasCliente"
EmptyDataText="Não há registros de histórico de doença para este cliente."
ShowFooter="True">
</asp:GridView>