Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 对象不包含';单元格';错误_C#_Object_Datagridview - Fatal编程技术网

C# 对象不包含';单元格';错误

C# 对象不包含';单元格';错误,c#,object,datagridview,C#,Object,Datagridview,我有两个datagridview。datagridview1和datagridview2。当我将产品从datagridview1添加到datagridview2时,datagridview1中的产品数量将传输到datagridview2。现在,当我从datagridview2中删除产品时,我需要它将数量传输回datagridview1 以前有人帮过我,但我现在犯了这个错误。 private int FindRowIndexByID(字符串id) { 对于(int i=0;i

我有两个datagridview。datagridview1和datagridview2。当我将产品从datagridview1添加到datagridview2时,datagridview1中的产品数量将传输到datagridview2。现在,当我从datagridview2中删除产品时,我需要它将数量传输回datagridview1

以前有人帮过我,但我现在犯了这个错误。

private int FindRowIndexByID(字符串id)
{
对于(int i=0;i
在for循环中,将
var
更改为实际类型,即
DataGridViewRow
。 像这样:

foreach(dgvPOScart.SelectedRows中的DataGridViewRowrow){..

我已经尝试过了,但是我得到了一个错误。在按钮删除((row.Cells[0].Value)];)的第7行,单击它说“无法从对象转换为字符串”
row.Cells[0].Value
返回一个对象类型,但是您的
FindRowIndexByID
函数需要一个字符串,您需要这样转换:
行.Cells[0].Value.ToString()
@FutureDev请不要忘记接受答案!
    private int FindRowIndexByID(string id)
    {
        for (int i = 0; i < dgvPOSproduct.Rows.Count; i++)
        {
            if (dgvPOSproduct.Rows[i].Cells[0].Value.ToString() == id)
            {
                return i;
            }
        }

        return -1;
    }

    private void btnRemove_Click(object sender, EventArgs e)
    {

        foreach (var row in dgvPOScart.SelectedRows)
        {
            // Get the row in dgvProducts and the quantity he'll gain back
            var productRow = dgvPOSproduct.Rows[FindRowIndexByID(row.Cells[0].Value)];
            int qtyToAdd = Convert.ToInt32(row.Cells[4].Value);

            // Add the quantity back
            productRow.Cells[5].Value = Convert.ToInt32(productRow.Cells[5].Value) + qtyToAdd;
        }

    }