Я хочу получить значение ячейки ComboBox
в DataGridView
, чтобы поместить ее в метод обновления для записи. Значения для этого ComboBox
отображаются с DisplayMember
и хранятся в базе данных как ID
.Как получить значение comboBox из ячейки datagridview
Это в моем DataGridView
в моем методе загрузки формы с ComboBox
ячейки в Индексе 15
.............
dgv_Cust.Columns[14].Name="Web";
dgv_Cust.Columns[14].DataPropertyName = "Web";
DataGridViewComboBoxColumn cbcol = new DataGridViewComboBoxColumn();
cbcol.Name = "AccStatus";
cbcol.DataPropertyName = "cbcol"; // DataTable column name
cbcol.Items.Add(new ComboRecord(0, ""));
cbcol.Items.Add(new ComboRecord(1, "Active"));
cbcol.Items.Add(new ComboRecord(2, "NotActive"));
cbcol.Items.Add(new ComboRecord(3, "Other"));
cbcol.DisplayMember = "Status";
cbcol.ValueMember = "IDx";
cbcol.DisplayIndex = 15;
dgv_Cust.Columns.Add(cbcol);
dgv_Cust.Columns[15].Name = "AccStatus";
dgv_Cust.Columns[15].DataPropertyName = "AccStatus";
dgv_Cust.ColumnCount = 17;
dgv_Cust.Columns[16].Name="Location";
dgv_Cust.Columns[16].DataPropertyName = "Location";
dgv_Cust.DataSource = DBConn.getCustInfo1();
}
Я получаю значения от этого DataGridView
передать его в метод Update, как это ComboBox
.... .
private void button2_Click(object sender, EventArgs e) //UpdateCustomer
{
//Here I want to get valueMember(IDx) for cell[15], from the comboBox
string PostalCode = this.dgv_Cust.CurrentRow.Cells[2].Value.ToString();
string Name = this.dgv_Cust.CurrentRow.Cells[3].Value.ToString();
string BusinessName = this.dgv_Cust.CurrentRow.Cells[4].Value.ToString();
string AltName = this.dgv_Cust.CurrentRow.Cells[5].Value.ToString();
string Adrs1 = this.dgv_Cust.CurrentRow.Cells[6].Value.ToString();
string Adrs2 = this.dgv_Cust.CurrentRow.Cells[7].Value.ToString();
string City = this.dgv_Cust.CurrentRow.Cells[8].Value.ToString();
string Province = this.dgv_Cust.CurrentRow.Cells[9].Value.ToString();
string Phone1 = this.dgv_Cust.CurrentRow.Cells[10].Value.ToString();
string Phone2 = this.dgv_Cust.CurrentRow.Cells[11].Value.ToString();
string Email1 = this.dgv_Cust.CurrentRow.Cells[12].Value.ToString();
string Email2 = this.dgv_Cust.CurrentRow.Cells[13].Value.ToString();
string Web = this.dgv_Cust.CurrentRow.Cells[14].Value.ToString();
string Location = this.dgv_Cust.CurrentRow.Cells[16].Value.ToString();
try
{
DBConn.updateCustInfo1(AccStatus, PostalCode, Name, BusinessName, AltName, Adrs1, Adrs2, City, Province, Phone1, Phone2, Email1, Email2, Web, Location);
}
catch (Exception es)
{
MessageBox.Show(es.Message);
}
Как получить ValueMember(IDx)
от DisplayMember
("", "Активный", "NotActive", "Другое") из ComboBox
в DGV
как ComboBox
Значение хранится как 'IDx
' в базе данных.
Я попытался, как описано выше, но получил «InvalidCastException», указанный литой не является действительным – Vik
Пробовал. error - DataGridViewCell не содержит определения для ValueMember. – Vik
По-прежнему нет. Теперь он дает мне ошибку - невозможно преобразовать тип 'string' в 'int'. это становится смешным ... lol – Vik