Member 13037527 Ответов: 1

Я не хочу вводить только пробелы в текстовое поле в C#, но charector's with spaces ok. Вот мой код с ошибками.


private void btnsave_Click(object sender, EventArgs e)
       {
           if(comboslm.Text == "")
           {

               MessageBox.Show("Please Select Salesman Name");

               comboslm.Focus();
           }
          else if(slmname.Text=="" || slmname.Text==!char.IsWhiteSpace(e.KeyChar)) (Here only redline it is showing.So unable to render also)
           {

               MessageBox.Show("Empty Salesman Name Not Accepted");
               slmname.Focus();

           }
           else if (combosmancode.Text == "")
           {
               MessageBox.Show("Select Record Key Number");
               combosmancode.Focus();
           }
           else
           {
               SqlConnection con = new SqlConnection(@"Data Source=M2\SQL2016;Initial Catalog=inventoryDB;Integrated Security=True");
               con.Open();
               SqlCommand cmd = new SqlCommand("UPDATE smanDB SET smaname=@label2 WHERE smancode=@label4", con);
               cmd.Parameters.Add("@label2", slmname.Text);
               cmd.Parameters.Add("@label4", combosmancode.GetItemText(combosmancode.SelectedItem));
               cmd.ExecuteNonQuery();
               con.Close();
               MessageBox.Show("Updated Successfully");
              /* combosmancode.SelectedIndex = -1;
               comboslm.SelectedIndex = -1;
               slmname.Text = "";
               comboslm.Focus();*/
               con = new SqlConnection(@"Data Source=M2\SQL2016;Initial Catalog=inventoryDB;Integrated Security=True");
               con.Open();
               string query = "SELECT smaname FROM smanDB";
               string que = "SELECT smancode FROM smanDB";
               SqlDataAdapter da = new SqlDataAdapter(query, con);
               SqlDataAdapter sda = new SqlDataAdapter(que, con);
               DataSet ds = new DataSet();
               DataSet sds = new DataSet();
               da.Fill(ds, "smanDB");
               sda.Fill(sds, "smanDB");
               comboslm.DisplayMember = "smaname";
               comboslm.ValueMember = "smaname";
               comboslm.DataSource = ds.Tables["smanDB"];

               combosmancode.DisplayMember = "smancode";
               combosmancode.ValueMember = "smancode";
               combosmancode.DataSource = sds.Tables["smanDB"];

               combosmancode.SelectedIndex = -1;
               comboslm.SelectedIndex = -1;
               slmname.Text = "";
               con.Close();


Что я уже пробовал:

Я попытался проверить, пусто ли. Мне это удалось. Но только для пробелов он показывает ошибку. хариктор с пробелами тоже в порядке. Но предотвратите только пробелы, показывающие ошибку

Graeme_Grant

Пожалуйста, нажмите на кнопку Улучшить вопрос и покажите текстовые (а не кодовые) примеры того, что является допустимым пользовательским вводом, а что нет.

Graeme_Grant

Является comboslm Combobox с выборками? Можно ли редактировать имена, отсутствующие в списке?

Является combosmancode Combobox с выборками? Можно ли редактировать имена, отсутствующие в списке?

Какой контроль slmname?

Это приложение WinForm?

Здесь много неизвестного...

Member 13037527

Да. Это приложение WinForm. comboslm-это combobox имени продавца, который я хочу выбрать для обновления.slmname-это текстовое поле для имени продавца, которое я обновляю. combosmancode-это код продавца, который генерируется автоматически.Чтобы обновить имя продавца, я взял код продавца. пользователь выбирает только номер продавца в combosmancode.

Karthik_Mahalingam

почему бы вам не использовать функцию обрезки

Member 13037527

где

Karthik_Mahalingam

ваш вопрос таков
slmname.Текст
это должно позволить "" и пространство ?

Tomas Takac

Было бы Строка.Метод IsNullOrWhiteSpace[^] может быть, помочь?

Graeme_Grant

Все путаются в том, чего вы хотите. Ваш вопрос неясен.

Еще раз, пожалуйста, нажмите на кнопку Улучшить вопрос и покажите текстовые (а не кодовые) примеры того, что является допустимым пользовательским вводом, а что нет.

1 Ответов

Рейтинг:
2

Richard MacCutchan

else if(slmname.Text=="" || slmname.Text==!char.IsWhiteSpace(e.KeyChar))

Вторая половина этого утверждения неверна. Вы не можете сравнить текстовое поле (slmname.Text) к логическому значению (!char.IsWhiteSpace(e.KeyChar)).