Привязка DataRow к TextBox - PullRequest
7 голосов
/ 17 марта 2010

Я хочу привязать текстовое поле к одному объекту DataRow (передается в диалоговую форму для редактирования). Вот мой код:

DataRow row = myDataTable.NewRow();
EditForm form = new EditForm(row);

//in EditForm constructor
nameTextBox.DataBindings.Add("Text", row, "name");

и я получаю сообщение об ошибке: Невозможно выполнить привязку к свойству или столбцу в источнике данных. Вы знаете, что мне не хватает или какие-нибудь обходные пути, может быть?

[Добавлено]

Мой DataTable наверняка содержит DataColumn с ColumnName = "name". Вот мой код для создания DataTable

    public DataTable SelectReturnDataTable(string tableName, string sql, params SQLiteParameter[] parameters)
    {
        using (SQLiteConnection conn = new SQLiteConnection(_connectionString))
        {
            using (SQLiteCommand cmd = new SQLiteCommand(conn))
            {
                cmd.CommandText = sql;
                foreach (SQLiteParameter p in parameters)
                    cmd.Parameters.Add(p);

                SQLiteDataAdapter da = new SQLiteDataAdapter(cmd);
                DataTable dt = new DataTable(tableName);                                        

                conn.Open();                    
                da.Fill(dt);

                return dt;
            }
        }
    }

Ответы [ 3 ]

2 голосов
/ 18 мая 2011

Попробуйте это:

DataView dv = myDataTable.DefaultView;

dv.RowFilter = "id=1";

nameTextBox.DataBindings.Add("Text",dv,"NAME");
0 голосов
/ 27 декабря 2010

Существует перегрузка для создания DataBinding, которая принимает объект для использования в случае, если исходным объектом является DBNull. Вы можете попробовать это.

0 голосов
/ 17 марта 2010

Я попытался воспроизвести это (с VS 2008 SP1), и я получил InvalidCastException, если в строке есть нулевые данные в столбце имени, но программа продолжается и работает.

Чтобы получить то же исключение, что и у вас, я должен сделать ошибку в имени столбца при связывании. Поэтому я чувствую себя обязанным повторить вопрос @ Хенка или попросить вас показать, как вы создаете таблицу данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...