Datagridview ComboBox数据绑定“值无效”

时间:2010-12-09 13:10:33

标签: c# data-binding

我正在尝试将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";

现在,每当我选择一个值,或者应该有一个预选值时,就会显示上面提到的错误。我该如何解决这个问题?

我真的需要帮助......

1 个答案:

答案 0 :(得分:0)

同时我发现了我的错误:

OracleXE将我的值发送为Decimal,这是我从未听过/梦寐以求的类型......现在通过将Id-Property更改为

public Decimal PersonRollenId
{
    get { return _personRollenId; }
    set { _personRollenId = value; }
}

一切正常。

这很糟糕,DataTables没有显示他们继承的类型......