2017-02-20 10 views
-4

Mein Code vergleicht einen übergebenen Integer-Parameter mit einer Datentabelle mit entsprechender String-Spalte. Das eigentliche Problem besteht darin, dass dem Zeichenfolgenwert oft 1 oder mehr Nullen vorangestellt sind. Am Ende vergleiche ich die Zeichenfolge "000123" mit der Ganzzahl 123 und sie stimmen nicht überein.C# datable.select mit Konvertierung schlägt fehl - warum?

Also möchte ich die Zeichenfolge in eine Ganzzahl konvertieren und als ganze Zahlen vergleichen. Ich habe versucht, diese aber es funktioniert nicht (ich Fehler „Kann nicht Spalte [int] finden“):

var activeMedDup = ActiveMedications?.Select($"convert(int,strDDI) = '{dup.DDI}'") 
+0

Sie müssen hier viel mehr Kontext geben. Wie ist die Struktur der Tabelle ActiveMedications? Was sind diese dup.DDI und strDDI? – Steve

+0

Was ist Ihre ursprüngliche Abfrage, um die Datentabelle oder zumindest die Struktur der Datentabelle zu bekommen? Auch [Lesen Sie diese] (http://stackoverflow.com/help/how-to-ask). – Andrew

+0

Tabelle hat die Spalte strDDI als eine Zeichenfolge definiert und der Parameter, den ich verwende, um es anzupassen ist ein INTEGER- das ist das Problem –

Antwort

0
var activeMedDup = ActiveMedications.Rows 
             .OfType<DataRow>() 
             .FirstOrDefault(x => Convert.ToInt32(x.Field<string>("DDI")) == ddi); 
Verwandte Themen