| Autor |
Beitrag |
avoid
      
Beiträge: 230
Erhaltene Danke: 4
MSDos, WinXP32, Win764, Win10, Android, Debian
msl (mIRC edit), html & php & Java (DreamweaverMX), Basic (picaxe PE6), C (Arduino IDE), C# (vs2010,2015,2017,2019,Unity,Android Studio)
|
Verfasst: Fr 20.07.12 14:55
ich versuche gerade mit folgendem code einen string in einem dataset zu lokalisieren um die zeile zu löschen oder zu bearbeiten. der code funktioniert soweit, aber der Editor unterstreicht ihn grün und sagt ich soll die linke seite der if abfrage zu string convertieren. einen Convert.ToString() kann ich ja gerne machen, nur wüsste ich gerne wo mein syntaxfehler ist. hat da jemand eine idee?
C#-Quelltext 1: 2: 3: 4: 5: 6: 7:
| for (int x = 0; x < dataSet1.Tables["Tabelle"].Rows.Count; ++x) { if (dataSet1.Tables["Tabelle"].Rows[x]["Spalte"] == "Test") { MessageBox.Show(dataSet1.Tables["Tabelle"].Rows[x]["Spalte"] + " steht in zeile " + x); } } |
hier noch die genaue fehlermeldung:
| Zitat: | Warnung 1 Unbeabsichtigter Verweisvergleich.
Wandeln Sie die linke Seite in den Typ "string" um, um einen Wertvergleich durchzuführen. |
gruß, avoid
_________________ Gute Fragen sind wie ein wissenschaftliches Experiment. Sie setzen eine Menge Wissen bereits voraus.
bitcoin:1J5dgQQp8eUy8wkUxyztBUVCkCpo5MQEQs?label=Danke
|
|
Kha
      
Beiträge: 3803
Erhaltene Danke: 176
Arch Linux
Python, C, C++ (vim)
|
Verfasst: Fr 20.07.12 15:19
Der Ausdruck auf der linken Seite des ==-Operators ist vom Typ object, also überprüft == die beiden Objekt referenzen auf Gleichheit ( object.ReferenceEquals). Bei Strings will man aber eher auf Inhaltsgleichheit prüfen, weshalb == für Strings überladen ist - allerdings müssen dafür auf beiden Seiten Strings stehen. Da das auf deiner rechten Seite schon der Fall ist, weist dich der Compiler darauf hin, dass du die linke Seite ebenfalls in einen String umwandeln solltest, damit tatsächlich der überladene Operator aufgerufen wird, was wohl auch deine Absicht war  .
PS: Statt Convert bitte, bitte einen normalen Cast verwenden: (string)foo
_________________ >λ=
|
|
Ralf Jansen
      
Beiträge: 4708
Erhaltene Danke: 991
VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
|
Verfasst: Fr 20.07.12 15:24
| Zitat: | | PS: Statt Convert bitte, bitte einen normalen Cast verwenden: (string)foo |
... wenn denn in der Spalte ein string steht.
|
|
avoid 
      
Beiträge: 230
Erhaltene Danke: 4
MSDos, WinXP32, Win764, Win10, Android, Debian
msl (mIRC edit), html & php & Java (DreamweaverMX), Basic (picaxe PE6), C (Arduino IDE), C# (vs2010,2015,2017,2019,Unity,Android Studio)
|
Verfasst: Fr 20.07.12 15:37
d.h. ich biege das so um und der editor ist zufrieden, die warscheinlichkeit das die anwendung ab schmiert wenn kein string an dieser stelle sein sollte ist aber noch die selbe.
doof
C#-Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| for (int x = 0; x < dataSet1.Tables["Tabelle"].Rows.Count; ++x) { string inhalt = dataSet1.Tables["Tabelle"].Rows[x]["Spalte"].ToString(); if (inhalt == "Test") { MessageBox.Show(dataSet1.Tables["Tabelle"].Rows[x]["Spalte"] + " steht in zeile " + x); } } |
naja falsche eingaben muß ich ja so oder so abfangen, wird schon klappen.
danke für die info!
_________________ Gute Fragen sind wie ein wissenschaftliches Experiment. Sie setzen eine Menge Wissen bereits voraus.
bitcoin:1J5dgQQp8eUy8wkUxyztBUVCkCpo5MQEQs?label=Danke
|
|
|