2016-03-26 3 views
0

Ich baue eine kleine App in C# WPF und es enthält eine lokale SQL-Datenbank. Dies wird dann auf einem Datenraster im Hauptfenster angezeigt. Ich habe Probleme, wo, wenn ich klicke, um eine bestimmte Reihe im Datenraster zu bearbeiten, es bei der Umwandlung des Textes in der Textbox zu dem Int fehlschlägt, übertrage ich vom Hauptfenster.ConvertToInt32 Textfeld

Unten ist die Hauptfenstermethode, die ich benutze, wenn der Benutzer klickt, um zu bearbeiten.

editStudent edit = neuer editStudent (stud.Id, stud.FirstName, stud.LastName, stud.Component1, stud.Component2, stud.Component3);

dann auf der Datei editStudent.cs Ich habe dies im Konstruktor, um die Textfelder und Comboboxen mit den Daten von mainWindow vorzufüllen. Alles, was ich versuche, die App auszuführen, ich sage, es gibt eine Ausnahme auf der Besetzung im Konstruktor. Ich frage mich nur, gibt es einen anderen Weg, es zu tun?

Dies ist der Konstruktor in der mo:

public editStudent(int matno, string firstname, string lastname, string combo1, string combo2, string combo3) 
    { 
     InitializeComponent(); 

     matNoEditTbx.Text = matno; 
     firstEditTbx.Text = firstname; 
     lastEditTbx.Text = lastname; 
     com1ComboEdit.Text = combo1; 
     com2ComboEdit.Text = combo2; 
     com3ComboEdit.Text = combo3; 
    } 

Visual Studio hat ein Problem mit dem ersten Textfeld zugeordnet, die matNoEditTbx.Text ist.

+0

Dies ist in der Regel ein Fehler von Menschen mit einem VB Hintergrund begangen zu konvertieren. Es ist nicht möglich, einer String-Eigenschaft (Text) einen ganzzahligen Wert (matno) zuzuweisen. Sie sollten Ihre Konvertierungsanfrage explizit angeben. C# wird es nicht für dich tun. Es ist besser. – Steve

Antwort

1

Sie können dem Text der TextBox kein int zuweisen. Sie tun sollen:

matNoEditTbx.Text = matno.ToString(): 
+0

Vielen Dank Herr. Du hast meine Frage gelöst! –

0

es unmöglich ist, implizit in einem String int

matNoEditTbx.Text = Convert.ToString(matno); 
//or : 
matNoEditTbx.Text = matno.ToString():