2016-03-29 10 views
0

Ich habe ein Problem mit der arabischen Zeichenanzeige in Textbox mit SQL-Datenbank. Ich benutze die nvarchar Art in SQL und wenn ich ein lateinisches Zeichen in der item combobox wähle funktioniert es perfekt (img1), aber wenn ich versuche, ein arabisches Element in combobox auswählen, passiert nichts in Textfeld 1 und 2 (img2).Datenbankwerte in Textfeld, wenn Combobox (arabische Zeichen) auswählen

Der Code:

using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 
using System.Data.Sql; 
using System.Data.SqlClient; 

namespace testconnection 
{ 
    public partial class Form1 : Form 
    { 
     private SqlConnection con; 
     private SqlCommand cmd; 
     private SqlDataAdapter da; 
     private DataTable dt; 
     private SqlDataReader dr; 
     public Form1() 
     { 
      InitializeComponent(); 
      combo(); 

     } 

     void combo() 
     { 
      con = new SqlConnection(
       @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\vemmi\Documents\user.mdf;Integrated Security=True"); 
      con.Open(); 
      cmd = new SqlCommand("SELECT usrs FROM usrtest", con); 
      try 
      { 
       SqlDataReader dr = cmd.ExecuteReader(); 

       while (dr.Read()) 
       { 
        comboBox1.Items.Add(dr["usrs"]); 

       } 

       dr.Close(); 

      } 
      catch (Exception ex) 
      { 
       MessageBox.Show(ex.Message, Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error); 
      } 
     } 

     private void button2_Click(object sender, EventArgs e) 
     { 
      Form2 c = new Form2(); 
      c.ShowDialog(); 
     } 

     private void Form1_Load(object sender, EventArgs e) 
     { 

     } 


     private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) 
     { 

      con = new SqlConnection(
       @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\vemmi\Documents\user.mdf;Integrated Security=True"); 
      con.Open(); 

      cmd = new SqlCommand("SELECT * FROM usrtest WHERE usrs like '" + comboBox1.Text + "' "); 

      cmd.Connection = con; 

      try 
      { 
       SqlDataReader dr = cmd.ExecuteReader(); 


       while (dr.Read()) 
       { 

         string p = dr["pwd"].ToString(); 
         string n = dr["nbr"].ToString(); 


         textBox2.Text = p; 
         textBox3.Text = n; 

       } 

      } 
      catch (Exception ex) 
      { 
       MessageBox.Show(ex.Message, Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error); 
      } 


     } 

enter image description here

Antwort

0

Versuchen Hinzufügen 'N' vor dem arabischen Zeichenfolge in der Abfrage.

cmd = new SqlCommand("SELECT * FROM usrtest WHERE usrs like N'" + comboBox1.Text + "' ");