c#: string darf nicht null sein

Gast #3363651
Lesenswert?

Hi,
ich versuche gerade ein excel-file auszulesen und den inhalt in ein 
string zu schreiben.

Nun habe ich das Problem, dass eine Zelle im Excelsheet leer sein kann. 
die EPPlus.dll welche das excelsheet ausliest gibt in diesem Fall 'null' 
zurück.

Da ich den Ihnalt aber nach string konvertiere bekomme ich einen Fehler 
:-(
1
Datensatz.Artikel = currentWorksheet.Cells[i, 3].Value.ToString();
wie prüfe ich hier nur 'halbwegs übersichtlich' auf null?

die mir bekannte Lösung ist mir eigentlich schon zuviel Tipparbeit da es 
um rel. viele Spalten geht.
1
try
2
{
3
  Datensatz.Artikel = currentWorksheet.Cells[i, 3].Value.ToString();
4
}
5
catch
6
{
7
  Datensatz.Artikel = "";
8
}
Persönliche Seite #3363714
Lesenswert?

maik schrieb:
> die mir bekannte Lösung

das sit keine Lösung sondern eine Verschleierung von Problemen, da du 
hier JEDEN Fehlerfall ignorierst.

maik schrieb:
> wie prüfe ich hier
1
if(currentWorksheet.Cells[i, 3].Value != null) {
2
//ungeleich null
3
} else {
4
//null
5
}
das solte aber wohl hoffentlich in jedem C' Tutorial stehen also --> 
Kauf dir ein Buch oder arbeite ein paar Einführungsbeispiele durch!

maik schrieb:
> Datensatz.Artikel = "";

Ich würde den auch auf null setzen und nicht auf leer, null ist NICHT 
der leere String!
#3363774
Lesenswert?

Εrnst B✶ schrieb:
> Bin jetzt kein C#-Profi,

Ich auch nicht, aber eigentlich kann man von einem null Objekt keine 
Methode aufrufen, das führt zu einer Nullpointer Exception.

Wenn man null erwartet, muss man darauf prüfen.
Man kann sich natürlich eine Methode definieren, die das macht und die 
50 mal aufrufen und muss nicht 50 mal if schreiben, wenn die aufrufenden 
Stellen gleich sind.
Gast #3364440
Lesenswert?

Tipparbeit sparst du dir indem du den Inhalt der Zelle vorher einer 
temporären Variablen zuweist, diese dann prüfst und dann konvertierst. 
Um das if wirst du nicht drum herum Kommen wenn du sauber bleiben 
willst.

Oder du benutzt dieses Konstrukt wirst dich aber irgendwann fragen warum 
das nötig ist
Convert.ToString(cell.Value);

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren