2016-07-26 10 views
0

ich eine Methode, die meine Comboboxnvarchar Wert in Combobox keine Daten auswählen, wenn Wert cyrilic ist, in lateinischer es tut

using (SqlConnection conn = new SqlConnection(ConString)) 
{ 
    // DO REMEMBER TO OPEN THE CONNECTION!!! 
    conn.Open(); 

    // Connection Established 
    SqlCommand command = new SqlCommand("SELECT * FROM monitoring", conn); 

    using (SqlDataReader reader = command.ExecuteReader()) 
    { 
     while (reader.Read()) 
     { 
      string item = reader[11].ToString(); 
      comboBoxPretraga.Items.Add(item); 
     } 
    } 
} 

Auch füllt, ich habe ein DropDownClosed event.It soll erhalten der Wert von Combo, und basierend darauf, um Textbox mit den Daten aus der gleichen Zeile zu füllen.

using (SqlConnection conn = new SqlConnection(ConString)) 
{ 
    conn.Open(); 

    // Connection Established 
    SqlCommand command = new SqlCommand("SELECT * FROM monitoring monitoring where konzervator_ime_prezime='" + comboBoxPretraga.Text + "'", conn); 

    using (SqlDataReader reader = command.ExecuteReader()) 
    { 
     while (reader.Read()) 
     { 
      string tlo = reader[2].ToString(); 
      textBox_TloI.Text = tlo; 
     } 
    } 
} 

Wenn ich meine App starte, sind die richtigen Werte in der Combobox. Aber wenn ich einen Wert in cyrilic (Beispiel: фдгдфгд) wähle, erhält TextBox_TloI keine Daten. Aber wenn ich einen Wert wählen, der latinisch ist, funktioniert es gut. Das Problem ist in combobox Wert. Weil, wenn ich etwas Latin von der Kombination vorwähle, es cyrilic in textbox anzeigen wird. Es scheint einfach nicht den richtigen kyrillischen Wert für die Filterung aus der Combobox zu bekommen .. Hilfe, jemand?

+1

[Parameterized SQL: nur sagen, ja] gesetzt werden (https://codeblog.jonskeet.uk/2014/08/ 08/the-bobbytables-culture /) – ASh

+1

versuchen zu tun, wo xx = N'some Text ' – Steve

+0

[SQL-Injection-Alarm] (http://msdn.microsoft.com/en-us/library/ms161953%28v=sql. 105% 29.aspx) - Sie sollten ** nicht ** Ihre SQL-Anweisungen verketten - verwenden Sie ** parametrisierte Abfragen ** statt SQL Injection zu vermeiden –

Antwort

0

Wenn Sie die txt des Textfeldes setzen Sie müssen die Kultur info

string tlo = reader[2].ToString(CultureInfo.CurrentCulture); 
+0

gibt es ein Problem mit diesem .. es sagt keine Überladungsmethode ToString dauert 1 Argument .. – nscott23

+0

Werfen Sie einen Blick auf diesen Link [CultureInfo] (https: //msdn.microso ft.com/en-us/library/system.globalization.cultureinfo.aspx) – bilpor