System.InvalidCastException: Specified cast is not valid.

  • Thread starter Thread starter Arjen
  • Start date Start date
A

Arjen

Hello,

Does somebody haves a solution for this?

Thanks!



Line 74: if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType ==
ListItemType.AlternatingItem) {
Line 75:
Line 76: DataRowView drv = (DataRowView) e.Item.DataItem;
Line 77:


Source File: links.ascx.cs Line: 76




[InvalidCastException: Specified cast is not valid.]
PortalICT.Links.myDataList_ItemDataBound(Object sender,
DataListItemEventArgs e) in links.ascx.cs:76
System.Web.UI.WebControls.DataList.OnItemDataBound(DataListItemEventArgs
e) +110
System.Web.UI.WebControls.DataList.CreateItem(Int32 itemIndex,
ListItemType itemType, Boolean dataBind, Object dataItem) +139
System.Web.UI.WebControls.DataList.CreateControlHierarchy(Boolean
useDataSource) +686
System.Web.UI.WebControls.BaseDataList.OnDataBinding(EventArgs e) +48
System.Web.UI.WebControls.BaseDataList.DataBind() +23
PortalICT.Links.Page_Load(Object sender, EventArgs e) in links.ascx.cs:39
System.Web.UI.Control.OnLoad(EventArgs e) +67
System.Web.UI.Control.LoadRecursive() +29
System.Web.UI.Control.LoadRecursive() +92
System.Web.UI.Control.LoadRecursive() +92
System.Web.UI.Control.LoadRecursive() +92
System.Web.UI.Page.ProcessRequestMain() +713
 
Arjen said:
Does somebody haves a solution for this?
Line 74: if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType ==
ListItemType.AlternatingItem) {
Line 75:
Line 76: DataRowView drv = (DataRowView) e.Item.DataItem;
Line 77:
[InvalidCastException: Specified cast is not valid.]

Arjen,
If you use a DataSet to fill the DataList, then that is the correct syntax.
However, if you use a SqlDataReader, then you must use cast the
DataItem to a System.Data.Common.DbDataRecord.
e.g.
System.Data.Common.DbDataRecord dbDataRecord =
(System.Data.Common.DbDataRecord) e.Item.DataItem;
String s = dbDataRecord.GetString(0);

--

Thanks,
Carl Prothman
Microsoft ASP.NET MVP
http://www.able-consulting.com
 
Back
Top