Заполните поле со списком одним табелем данных и сохраните выбор в другом - PullRequest
0 голосов
/ 03 мая 2010

У меня есть две таблицы данных в наборе данных, например, скажем,

Servers:
| Server | Ip |

Users:
| Username | Password | Server |

и для пользователей существует внешний ключ, который указывает на серверы.

Как мне сделать поле со списком всех серверов. Тогда как мне сохранить выбранный сервер в этом поле со списком в наборе данных в столбце Сервер таблицы пользователей.

РЕДАКТИРОВАТЬ - Я еще не проверял, но это правильный путь?

this.bsServers.DataMember = "Servers";
this.bsServers.DataSource = this.dataSet;
this.bsUsers.DataMember = "FK_Users_Servers";
this.bsUsers.DataSource = this.bsServers;
this.serverComboBox.DataBindings.Add(new System.Windows.Forms.Binding("SelectedValue", this.bsUsers, "Server", true));
this.serverComboBox.DataSource = this.bsServers;
this.serverComboBox.DisplayMember = "Server";
this.serverComboBox.ValueMember = "Server";

1 Ответ

0 голосов
/ 04 мая 2010

Я так не думаю. Вам нужно заполнить свои bsUsers и указать, как вы хотите выбрать пользователей из этого списка (еще один комбинированный список?).

bsServers.DataMember = "Servers";
bsServers.DataSource = new[]
    {
       new Servers {Server = "1", Ip = "1.1.1.1"},
       new Servers {Server = "2", Ip = "2.2.2.2"},
       new Servers {Server = "3", Ip = "3.3.3.3"},
       new Servers {Server = "4", Ip = "4.4.4.4"}
    };
bsUsers.DataSource = new[]
     {
         new Users {Server = "1", Username = "aaa", Password="kjkhkhk"},
         new Users {Server = "1", Username = "bbb", Password="3534564"},
         new Users {Server = "3", Username = "ccc", Password="egrhtyj"},
         new Users {Server = "2", Username = "ddd", Password="6576878"}
     };
serverComboBox.DataBindings.Add("SelectedValue", bsUsers, "Server", true);
serverComboBox.DataSource = bsServers;
serverComboBox.DisplayMember = "Server";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...