//方法
PATH
/调用方法
private void txtBoxDateView(string column_name, string txt_box_value)
{
if (ColumnName != null && txtBoxValue != null)
{
ColumnName = null;
txtBoxValue = null;
}
ColumnName = column_name;
txtBoxValue = txt_box_value;
DV = new DataView(dt);
DV.RowFilter = string.Format(column_name + " like '%{0}%'", txt_box_value);
dgvInventory1.DataSource = DV;
}
当我双击该行时,该值将仅分配给txtId,txtName和txtCatg。我已经检查过我的SSMS。单元格正确。当我调试时,即使有数据,文本框也会分配“”空值。我前几天测试后txtBoxValue = txt_box_value;每次运行时将变为空。它只会显示txtId.text值。除了(txtqty)外,其余全部为varchar。我的方法有问题吗?
答案 0 :(得分:2)
我怀疑文本更改事件会影响CurrentRow
触发TextChange
事件时,它会使用过滤的记录来更改数据源。
过来。在鼠标双击事件中使用以下语句
var dataRow = dataGridView1.CurrentRow.DataBoundItem as DataRowView;
if (dataRow != null)
{
var row = dataRow.Row;
txtId.Text = row.ItemArray[0].ToString();
txtCatg.Text = row.ItemArray[1].ToString();
txtName.Text = row.ItemArray[2].ToString();
//below this code doesnt assign value
txtBrand.Text = row.ItemArray[3].ToString();
txtLocation.Text = row.ItemArray[4].ToString();
txtQty.Text = row.ItemArray[5].ToString();
//txtqty this have another function to do
}
以上行不依赖于视图。并使用直接表行数据。
此外,txtqty
函数还可以使用DataRow