窗口形式TextBox否从datagridview分配任何值

时间:2018-10-29 03:06:18

标签: c# winforms methods invoke

//方法

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。我的方法有问题吗?

1 个答案:

答案 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