Hallo Forum,
ich habe gerade ein Problem, das ich nicht gelöst bekomme. Folgenden Code habe ich:
C#-Code:
private IList InnerDataSource() {
try {
if (this.mDataSource is DataSet) {
if (this.mDataMember != null && this.mDataMember.Length > 0) {
return ((IListSource)(((DataSet)(mDataSource)).Tables[mDataMember])).GetList();
} else {
return ((IListSource)(((DataSet)(mDataSource)).Tables[0])).GetList();
}
} else if (this.mDataSource is IListSource) {
return ((IListSource)(mDataSource)).GetList();
} else {
return ((IList)(mDataSource));
}
}
catch (Exception e) {
System.Windows.Forms.MessageBox.Show(e.ToString()) ;
return null;
}
}
Zur Designzeit läuft alles ohne Probleme! Es gibt auch keine Compilermeldung etc.
Wenn ich die Anwendung dann allerdings starte, wird an folgender Stelle eine "Object reference is not set to an instance of an object" geworfen:
C#-Code:
return ((IListSource)(((DataSet)(mDataSource)).Tables[mDataMember])).GetList();
Durch Debuggen habe ich herausgefunden, dass er die Table, die durch mDataMember angegeben wird, nicht finden kann. Ich frage mich allerdings, warum er die Table zur Designzeit finden kann, zur Laufzeit aber nicht.
Hier ist mal die VB Methode, die ich nach C# portiert habe.
Vielleicht hat dann ja jemand eine Idee, woran es liegen könnte:
C#-Code:
Private Function InnerDataSource() As IList
If TypeOf mDataSource Is DataSet Then
If Len(mDataMember) > 0 Then
Return CType(CType(mDataSource, DataSet).Tables(mDataMember), _
IListSource).GetList
Else
Return CType(CType(mDataSource, DataSet).Tables(0), _
IListSource).GetList
End If
ElseIf TypeOf mDataSource Is IListSource Then
Return CType(mDataSource, IListSource).GetList
Else
Return CType(mDataSource, IList)
End If
End Function
Ich erhalte aber auch in der VB-Methode die gleiche Exception.
Vielleicht hat ja jemand eine Idee, woran es liegen könnte.
Gruß,
Fabian
ich habe gerade ein Problem, das ich nicht gelöst bekomme. Folgenden Code habe ich:
C#-Code:
private IList InnerDataSource() {
try {
if (this.mDataSource is DataSet) {
if (this.mDataMember != null && this.mDataMember.Length > 0) {
return ((IListSource)(((DataSet)(mDataSource)).Tables[mDataMember])).GetList();
} else {
return ((IListSource)(((DataSet)(mDataSource)).Tables[0])).GetList();
}
} else if (this.mDataSource is IListSource) {
return ((IListSource)(mDataSource)).GetList();
} else {
return ((IList)(mDataSource));
}
}
catch (Exception e) {
System.Windows.Forms.MessageBox.Show(e.ToString()) ;
return null;
}
}
Zur Designzeit läuft alles ohne Probleme! Es gibt auch keine Compilermeldung etc.
Wenn ich die Anwendung dann allerdings starte, wird an folgender Stelle eine "Object reference is not set to an instance of an object" geworfen:
C#-Code:
return ((IListSource)(((DataSet)(mDataSource)).Tables[mDataMember])).GetList();
Durch Debuggen habe ich herausgefunden, dass er die Table, die durch mDataMember angegeben wird, nicht finden kann. Ich frage mich allerdings, warum er die Table zur Designzeit finden kann, zur Laufzeit aber nicht.
Hier ist mal die VB Methode, die ich nach C# portiert habe.
Vielleicht hat dann ja jemand eine Idee, woran es liegen könnte:
C#-Code:
Private Function InnerDataSource() As IList
If TypeOf mDataSource Is DataSet Then
If Len(mDataMember) > 0 Then
Return CType(CType(mDataSource, DataSet).Tables(mDataMember), _
IListSource).GetList
Else
Return CType(CType(mDataSource, DataSet).Tables(0), _
IListSource).GetList
End If
ElseIf TypeOf mDataSource Is IListSource Then
Return CType(mDataSource, IListSource).GetList
Else
Return CType(mDataSource, IList)
End If
End Function
Ich erhalte aber auch in der VB-Methode die gleiche Exception.
Vielleicht hat ja jemand eine Idee, woran es liegen könnte.
Gruß,
Fabian
Comment