[英]Datagridview ComboBox Databinding “Value is not valid”
我現在嘗試將DataGridViewComboBox綁定到列表上幾個小時。
但是一個
"Value is not valid"-Error-Dialog is everything I get :(
從本地的oracle-test-database,我正在獲取一些數據。 一切正常,但組合框。 我希望組合框在db選擇值中顯示-有時-並讓用戶通過組合框更改該值。
我有一個叫做DtoPerson的類:
internal class DtoPerson
{
private String _name;
private Int32 _personRollenId;
public String Name
{
get { return _name; }
set { _name = value; }
}
public Int32 PersonRollenId
{
get { return _personRollenId; }
set { _personRollenId = value; }
}
}
我在此方法中填寫了DtoPersons列表:
private void CreateList()
{
DataRow[] treiberRows = _personTable.Select("ROLLE = '2'", "PERSONNAME ASC", DataViewRowState.CurrentRows);
_aufbauerListe = new List<DtoPerson>();
if (treiberRows != null && treiberRows.Length > 0)
{
foreach (DataRow row in treiberRows)
{
DtoPerson person = new DtoPerson();
//Füllen der Felder
person.Name = row["PERSONNAME"].ToString();
int persoId;
Int32.TryParse(row["PERSROLLID"].ToString(), out persoId);
person.PersonRollenIdInt = (persoId > 0) ? persoId : -1;
_aufbauerListe.Add(person);
}
}
}
加載完所有數據后,我將ComboBox綁定到列表:
(_dgvDb.Columns["AUFBAUER"] as DataGridViewComboBoxColumn).DataSource = DaPerson.Instance.AufbauerListe;
(_dgvDb.Columns["AUFBAUER"] as DataGridViewComboBoxColumn).DisplayMember = "Name";
(_dgvDb.Columns["AUFBAUER"] as DataGridViewComboBoxColumn).ValueMember = "PersonRollenId";
(_dgvDb.Columns["AUFBAUER"] as DataGridViewComboBoxColumn).DataPropertyName = "AUFBAUERID";
現在,每次我選擇一個值,或者應該有一個預先選擇的值時,都會顯示上述錯誤。 我該如何解決?
我真的需要這里的幫助...
同時,我發現了自己的錯誤:
OracleXE將我的值作為Decimal
發送,這是我從未聽說過/夢想過的……現在通過將Id-Property更改為
public Decimal PersonRollenId
{
get { return _personRollenId; }
set { _personRollenId = value; }
}
一切正常。
可憐的是,DataTables不顯示它們繼承的是哪種類型...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.