в C# Выбор текста на урду из поля со списком не обновляет текстовое поле или метку в форме, но хорошо работает с текстом Engli sh с тем же кодом - PullRequest
0 голосов
/ 25 апреля 2020

Я создаю программное обеспечение на C# с SQL управлением сервером с таблицами базы данных в тексте на урду. Возникла проблема: я создал таблицу TblMardanax с тремя столбцами sm_id, sm_sympton и sm_tehreek в SQL. на C# windows сформируйте одно поле со списком для отображения sm_symptom и метку со списком для отображения sm_tehreek. Это хорошо (изменяет текст метки в соответствии с выбранным элементом из комбинированного списка), когда я помещаю данные в engli sh в таблицу TblMardanax, но когда я помещаю данные в урду, она остается пустой (без изменений) метки. Я не понимаю, в чем проблема, и в коде нет ошибок. Коды здесь.

private void Symptoms_Load(object sender, EventArgs e)
        {
            MardanaCB.Items.Clear();
            con.Open();
            cmd = con.CreateCommand();
            cmd.CommandType = CommandType.Text;
            cmd.CommandText = "SELECT sm_symptom FROM TblMardanax";
            cmd.ExecuteNonQuery();
            DataTable dt = new DataTable();
            SqlDataAdapter da = new SqlDataAdapter(cmd);
            da.Fill(dt);
            foreach(DataRow dr in dt.Rows)
            {
                MardanaCB.Items.Add(dr["sm_symptom"].ToString());
            }
            con.Close();
        } 

private void MardanaCB_SelectedIndexChanged(object sender, EventArgs e)
        {
            con.Open();
            SqlCommand cmd = con.CreateCommand();
            cmd.CommandType = CommandType.Text;
            cmd.CommandText = "SELECT * FROM TblMardanax WHERE sm_symptom='" + MardanaCB.Items[MardanaCB.SelectedIndex].ToString() + "'";
            cmd.ExecuteNonQuery();
            DataTable dt = new DataTable();
            SqlDataAdapter da = new SqlDataAdapter(cmd);
            da.Fill(dt);
            foreach(DataRow dr in dt.Rows)
            {
                SymLbl1.Text = dr["sm_tehreek"].ToString();
                SymTxt1.Text = dr["sm_tehreek"].ToString();
            }
            con.Close();
        }

1 Ответ

0 голосов
/ 03 мая 2020

Аль-Хамдо-Лиллах, моя проблема решена: вот код, который отлично работает для языков, подобных урду, для добавления в базу данных SQL через c#.

private void MardanaCB_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (MardanaCB.Text =="")
            {
                SymLbl1.Text = "0";
            }
            else
            {
                SymLbl1.Text = MardanaCB.SelectedValue.ToString();
                //con.Open();
                //SqlCommand cmd = con.CreateCommand();
                //cmd.CommandType = CommandType.Text;
                //cmd.CommandText = "SELECT * FROM Alamaat WHERE al_name=(N'" + MardanaCB.SelectedItem.ToString() + "')";//this is the line with N worked fine.
                //DataTable dt = new DataTable();
                //SqlDataAdapter da = new SqlDataAdapter(cmd);
                //da.Fill(dt);
                //foreach (DataRow dr in dt.Rows)
                //{
                    //SymLbl1.Text = dr["al_tehreek"].ToString();
                //}
                //con.Close();
                SymplusCB1.Enabled = true;
            }
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...