Protected Sub showrsresults(ByVal e As IEnumerable)
Dim idx As IEnumerator = e.GetEnumerator
While idx.MoveNext
If idx.Current.GetType() Is GetType(DataRowView) Then
Dim drv As DataRowView = DirectCast(idx.Current, DataRowView)
Response.Output.Write("{0},{1},{2} </br>", drv(0), drv(1), drv(2))
ElseIf idx.Current.GetType() Is GetType(DbDataRecord) Then
Dim dr As DbDataRecord = DirectCast(idx.Current, DbDataRecord)
Response.Output.Write("{0},{1},{2} </br>", dr(0), dr(1), dr(2)) End If
End While
End Sub这里主要是ByVal e As IEnumerable是什么意思
还有转换这一句idx.Current.GetType() Is GetType(DataRowView)
谢谢
Dim idx As IEnumerator = e.GetEnumerator
While idx.MoveNext
If idx.Current.GetType() Is GetType(DataRowView) Then
Dim drv As DataRowView = DirectCast(idx.Current, DataRowView)
Response.Output.Write("{0},{1},{2} </br>", drv(0), drv(1), drv(2))
ElseIf idx.Current.GetType() Is GetType(DbDataRecord) Then
Dim dr As DbDataRecord = DirectCast(idx.Current, DbDataRecord)
Response.Output.Write("{0},{1},{2} </br>", dr(0), dr(1), dr(2)) End If
End While
End Sub这里主要是ByVal e As IEnumerable是什么意思
还有转换这一句idx.Current.GetType() Is GetType(DataRowView)
谢谢
idx.Current.GetType()==typeof(DataRowView)
具体是做什么用的谢谢
GetEnumerator,返回可循环访问集合的枚举数
有Current属性与MoveNext方法
调用showrsresults时,参数传入实现IEnumerable接口的类的对象就可以了
{
IEnumerator idx = e.GetEnumerator();
while (idx.MoveNext())
{
if (idx.Current.GetType() == typeof(DataRowView))
{
DataRowView drv = DirectCast(idx.Current, DataRowView);
Response.Output.Write("{0},{1},{2}</br>",drv(0),drv(1),drv(2));
}
else if(idx.Current.GetType() == typeof(DbDataRecord))
{
DbDataRecord dr = DirectCast(idx.Current,DbDataRecord);
Response.Output.Write("{0},{1},{2}</br>", dr(0), dr(1), dr(2));
}
}
}
改成
Response.Output.Write("{0},{1},{2}</br>",drv([0],drv[1],drv[2]);