Как заполнить поле WinForm SQL-запросом на основе унаследованного параметра из предыдущей формы? - PullRequest
0 голосов
/ 04 апреля 2019

Моя первая форма - это та, которая позволяет искать и находить человека с помощью ComboBox: очень просто. Как только этот человек выбран (это объединенное значение в следующем формате [фамилия, имя MI: Status: CustomerID]), он создает новую форму, где я хочу принять это «унаследованное» значение (извините, если я не правильно использую термин) и заполняю различные поля, такие как DOB, адрес и т. д.

То, что я хочу сделать, - это использовать идентификатор клиента из предыдущего выбора в новом запросе SQL, чтобы заполнить поля в этой новой форме (использовать параметр customerid из исходного выбора для поиска метаданных, таких как DOB, адрес и т. Д.). Мой текущий шаблон для облегчения заполнения этого поля использует ListView. Должен ли я использовать что-то еще, что ничего не будет делать, кроме отображения значения SQL только для чтения?

Вот моя форма, чтобы ясно увидеть мое намерение: новая форма

Вот мой код:

public partial class pract_info : Form
    {
        public pract_info()
        {
            InitializeComponent();
        }

        private void Address_SelectedIndexChanged(object sender, EventArgs e)
        {

        }
    }
}

Я видел множество примеров того, как подключиться к SQL, но я борюсь за то, как все они могут так сильно различаться. Даже если бы кто-то мог предоставить ссылку, которая кратко объясняет, как она работает, это было бы удивительно.

Я все еще изучаю C #, поэтому мои извинения, если я задаю вопросы, которые кто-то должен чувствовать, я должен уже знать. Я пытаюсь научиться этому, но лучше всего учусь, делая и видя примеры, чтобы визуализировать концепцию в моей голове.


* Обновление 1: Мне кажется, я понимаю, куда ты идешь, Ашкан. Вот что я имел в своей основной форме до публикации справки здесь:

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {

            ComboBox senderComboBox = (ComboBox)sender;

            pract_info form = new pract_info();
            form.Text = senderComboBox.SelectedItem.ToString();
            form.ShowDialog();
        }

1 Ответ

1 голос
/ 04 апреля 2019

1.Вы можете создать публичное свойство и установить его при создании нового экземпляра:

public partial class pract_info : Form
    {

        public int Id {get; set;}
        public pract_info()
        {
            InitializeComponent();
        }

        private void Address_SelectedIndexChanged(object sender, EventArgs e)
        {

        }
    }

А в вашей основной форме:

pract_info frm = new pract_info ();
frm.Id = 123; 
frm.Show();

2.Вы также можете изменить новый инициализатор формы для принятия параметра:

public partial class pract_info : Form
    {

        private int id;
        public pract_info(int Id)
        {
            id = Id;
            InitializeComponent();
        }

        private void Address_SelectedIndexChanged(object sender, EventArgs e)
        {

        }
    }

и затем в вашей основной форме:

pract_info frm = new pract_info (123);
frm.Show();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...