Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Базы данных под .NET > Использование dataView при поиске, фильтре...


Автор: Redstuff 27.8.2007, 22:35
Подскажите как вместо datagrid данные выводить в textbox, если использовать dataview, а то я так понимаю у него только строки можно получить...
Код

private void btnSearch_Click(object sender, EventArgs e)
        {
            DataView myDataView = new DataView(ds.Tables["Hardware"]);
            myDataView.RowFilter = "Name Like '" + txtSearch.Text + "'";
            dataGrid3.DataSource = myDataView;
        }

Нужно чтобы данные отображались в textbox'ах, а не в гриде

Автор: tol05 27.8.2007, 23:03
через свойство TextBox.DataBindings, связывая сразу с DataSet.
посмотри в MSDN пример c "Control.DataBindings Property"

Автор: Redstuff 27.8.2007, 23:21
tol05, я понимаю что через DataBindings, не могу сообразить как извлечь
Код

txtName.Text = this.BindingContext[ds, "Hardware.Name"].ToString();

 smile плиз

Автор: tol05 28.8.2007, 00:00
ок. У тебя есть DataSet с таблицей "Hardware" и textbox1
Код

private void btnSearch_Click(object sender, EventArgs e)
{
   textBox1.DataBindings.Add(new Binding("Text", ds, "Hardware.Name"));
}

к свойству "Text" textbox-а привяжется Hardware.Name датасета ds

http://www.intuit.ru/department/pl/visualcsharp/4/visualcsharp_4.html
читать с "Связывание элементов управления с данными" smile

Автор: Redstuff 28.8.2007, 12:10
Не понял как все-таки выводить найденные данные в текстбоксы, сделал через SELECT
Код

cmd = "SELECT * FROM Hardware WHERE Name Like '" + txtSearch.Text + "'";

Автор: tol05 28.8.2007, 12:20
ну так правильно. Ты создаешь строку команды, заполняешь (апдейтаешь и т.д.) датасет, а твои текстбоксы (подвязанные к Датасет через DataBindings) отображают информацию.

Автор: Papirus 28.8.2007, 13:31
Другой способ - работать напрямую без связывания. 

Код

private void ControlsWrite(Datarow rw)
{
TextBox1.Text = rw(0)
TextBox2.Text = rw(1)
...
}

private void ControlsRead(Datarow rw)
{
rw(0) = TextBox1.Text
rw(1) = TextBox2.Text
....
}


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)