convertir en IEnumerable<EssaiRef>
Bonjour à tous,
J'ai un exemple de page aspx qui affiche un gridView et sur chaque ligne du gridView, il y a un lien pour ouvrir un detailView.
Le tout fonctionne avec de l'ajax : asp:UpdatePanel et ajaxToolKit:ModalPopupExtender (pour afficher le detailView en mode modal).
L'exemple marche très bien avec un fichier Xml contenant les données mais il plante quand j'essaye de le faire marcher avec des données provenant d'une base Oracle.
L'erreur est la suivante : je n'arrive pas à retourner un objet "IEnumerable<EssaiRef>" dans la méthode :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
[DataObjectMethod(DataObjectMethodType.Select)]
public IEnumerable<EssaiRef> FindByID(string Essai_ID)
{
OracleConnection conn = new OracleConnection();
conn.ConnectionString = "Data Source=Test.World;User Id=test1;Password=test1;";
conn.Open();
string sql = "Select * from essai_ref where Essai_ID =" + Essai_ID;
OracleCommand cmd = new OracleCommand(sql, conn);
OracleDataAdapter dataAdapter = new OracleDataAdapter(cmd);
DataSet oracleDataSet = new DataSet();
dataAdapter.Fill(oracleDataSet);
DataTable dataTableTmp = oracleDataSet.Tables[0];
conn.Close();
conn = null;
return (IEnumerable<EssaiRef>) dataTableTmp.AsEnumerable).ToList(); |
J'ai le message :
Citation:
Sys.WebForms.PageRequestManagerServerErrorException : Exception has been thrown by the target of an invocation.
J'ai essayé plusieurs conversions vers IEnumerable<EssaiRef> mais rien n'y fait
Tandis que le code suivant marche (avec le fichier Xml) :
Code:
1 2 3 4 5 6 7
|
[DataObjectMethod(DataObjectMethodType.Select)]
public IEnumerable<Customer> FindByID(string id)
{
// find the customer
return (from c in this.Customers where c.ID == id select c).ToList();
} |
La méthode FindByID est utilisée dans la page aspx dans un objet ObjectDataSource qui nourrit le detailView :
Code:
1 2 3 4 5
|
<asp:ObjectDataSource ID="odsEssaiRefDetail" runat="server" TypeName="getOracleData" DataObjectTypeName="EssaiRef" OnSelecting="OdsCustomerDetail_Selecting" SelectMethod="FindByID" UpdateMethod="Update">
<SelectParameters>
<asp:Parameter Name="Essai_ID" Type="Int32" />
</SelectParameters> |
Auriez-vous une idée ?
Merci beaucoup par avance.
Laurent.