Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/294.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#_Sqlite_Loops_Foreach_Listbox - Fatal编程技术网

C# 我犯的每一个错误是什么?

C# 我犯的每一个错误是什么?,c#,sqlite,loops,foreach,listbox,C#,Sqlite,Loops,Foreach,Listbox,我的foreach循环有问题。prupose是通过列表框中的项目进行循环,对于存在的每个项目,它应该将person的属性设置为等于person对象的属性,我将插入到person对象列表中。(person有一个项目,带有属性等)。问题:它将第一个人及其项目插入列表,但当第二个人必须插入时,它会将第一个人数据更改为与第二个人数据相同的数据,并插入第二个人。因此,它总是插入新的人,但我已经插入的所有旧数据也会与新的人的数据相同 private void btnOK_Click(object sende

我的foreach循环有问题。prupose是通过列表框中的项目进行循环,对于存在的每个项目,它应该将person的属性设置为等于person对象的属性,我将插入到person对象列表中。(person有一个项目,带有属性等)。问题:它将第一个人及其项目插入列表,但当第二个人必须插入时,它会将第一个人数据更改为与第二个人数据相同的数据,并插入第二个人。因此,它总是插入新的人,但我已经插入的所有旧数据也会与新的人的数据相同

private void btnOK_Click(object sender, EventArgs e)
        {
            bool bOK = false;

            if (UC.IsEmpty(txtFirstName) || UC.IsEmpty(txtLastName) || UC.IsEmpty(txtID) || lstItemsAdded.Text == null) //Maak seker van die listItemsAdded se content... hier sal n error wees... j kan nog n else maak dat hy spesefiek toets of daar items in die lstbox is
            {
                UC.MB("Customer Information Missing", "Please supply enough customer information");
            }
            else
            {
                bOK = true;
            }
            if (bOK) 
            {

                foreach (Item item in lstItemsAdded.Items)
                {
                        PersonItemObject.FirstName = txtFirstName.Text;
                        PersonItemObject.LastName = txtLastName.Text;
                        PersonItemObject.ID = txtID.Text;
                        PersonItemObject.Email = txtEmail.Text;
                        PersonItemObject.Age = Convert.ToInt32(txtAge.Text);

                        PersonItemObject.Item.ItemCode = item.ItemCode;
                        PersonItemObject.Item.ItemDescription = item.ItemDescription;
                        PersonItemObject.Item.ItemName = item.ItemName;
                        PersonItemObject.Item.ItemPrice = item.ItemPrice;
它应该在下一个语句中将列表框中的所有项目添加到列表中,并且还应该为每个项目添加人员详细信息

                        PersonItemsList.Add(PersonItemObject);
如果我向一个人添加了多个项目,则会将我在列表中添加的旧数据更改为与新的个人数据相同,并将新的个人插入列表中

                    }
                DialogResult = DialogResult.OK;
                Close();

            }
        }

您应该创建“Personimobject”的新实例。比如:

PersonItemObject = new PersonItemObjectClass()

作为循环的第一句话,being personimobject类是personimobject的类型。这里的问题可能是,您总是使用同一个实例,因此值总是在变化。

您应该为“Personimobject”创建一个新实例。比如:

PersonItemObject = new PersonItemObjectClass()

作为循环的第一句话,being personimobject类是personimobject的类型。这里的问题可能是,您总是使用同一个实例,因此值总是在变化。

您应该为“Personimobject”创建一个新实例。比如:

PersonItemObject = new PersonItemObjectClass()

作为循环的第一句话,being personimobject类是personimobject的类型。这里的问题可能是,您总是使用同一个实例,因此值总是在变化。

您应该为“Personimobject”创建一个新实例。比如:

PersonItemObject = new PersonItemObjectClass()

作为循环的第一句话,being personimobject类是personimobject的类型。这里的问题可能是,您总是在使用同一个实例,因此值总是在变化。

您必须在
foreach
循环中创建一个新的
Personimobject
类型的实例

您要添加到
PersonimsList
中的内容实际上是对类的单个实例的引用。每次迭代循环时,都会更新同一个实例,因此会有一个外观相同的对象列表

foreach (Item item in lstItemsAdded.Items)
{
    var PersonItemObject = new PersonItem();

    PersonItemObject.FirstName = txtFirstName.Text;
    PersonItemObject.LastName = txtLastName.Text;

    ...

    PersonItemsList.Add(PersonItemObject);
}

您可能想了解它们之间的区别。

您必须在
foreach
循环中创建一个新的
Personimobject
类型的实例

您要添加到
PersonimsList
中的内容实际上是对类的单个实例的引用。每次迭代循环时,都会更新同一个实例,因此会有一个外观相同的对象列表

foreach (Item item in lstItemsAdded.Items)
{
    var PersonItemObject = new PersonItem();

    PersonItemObject.FirstName = txtFirstName.Text;
    PersonItemObject.LastName = txtLastName.Text;

    ...

    PersonItemsList.Add(PersonItemObject);
}

您可能想了解它们之间的区别。

您必须在
foreach
循环中创建一个新的
Personimobject
类型的实例

您要添加到
PersonimsList
中的内容实际上是对类的单个实例的引用。每次迭代循环时,都会更新同一个实例,因此会有一个外观相同的对象列表

foreach (Item item in lstItemsAdded.Items)
{
    var PersonItemObject = new PersonItem();

    PersonItemObject.FirstName = txtFirstName.Text;
    PersonItemObject.LastName = txtLastName.Text;

    ...

    PersonItemsList.Add(PersonItemObject);
}

您可能想了解它们之间的区别。

您必须在
foreach
循环中创建一个新的
Personimobject
类型的实例

您要添加到
PersonimsList
中的内容实际上是对类的单个实例的引用。每次迭代循环时,都会更新同一个实例,因此会有一个外观相同的对象列表

foreach (Item item in lstItemsAdded.Items)
{
    var PersonItemObject = new PersonItem();

    PersonItemObject.FirstName = txtFirstName.Text;
    PersonItemObject.LastName = txtLastName.Text;

    ...

    PersonItemsList.Add(PersonItemObject);
}

在每次迭代中,您都要更新同一对象的属性,然后将其插入到列表中,您可能需要了解它们之间的差异。因此,在结束列表中包含对同一对象的多个引用

您应该为每次迭代创建新对象:

foreach (Item item in lstItemsAdded.Items)
{
    PersonItem item = new PersonItem(); //just guessing the type here
    item.FirstName = txtFirstName.Text;
    ...
    PersonItemsList.Add(item);
}
foreach (Item item in lstItemsAdded.Items)
{
    var PersonItemObject = new YourType();
    PersonItemObject.FirstName = txtFirstName.Text;
    PersonItemObject.LastName = txtLastName.Text;
    ...
}

在每次迭代中,您都要更新同一对象的属性,然后将其插入列表中。因此,在结束列表中包含对同一对象的多个引用

您应该为每次迭代创建新对象:

foreach (Item item in lstItemsAdded.Items)
{
    PersonItem item = new PersonItem(); //just guessing the type here
    item.FirstName = txtFirstName.Text;
    ...
    PersonItemsList.Add(item);
}
foreach (Item item in lstItemsAdded.Items)
{
    var PersonItemObject = new YourType();
    PersonItemObject.FirstName = txtFirstName.Text;
    PersonItemObject.LastName = txtLastName.Text;
    ...
}

在每次迭代中,您都要更新同一对象的属性,然后将其插入列表中。因此,在结束列表中包含对同一对象的多个引用

您应该为每次迭代创建新对象:

foreach (Item item in lstItemsAdded.Items)
{
    PersonItem item = new PersonItem(); //just guessing the type here
    item.FirstName = txtFirstName.Text;
    ...
    PersonItemsList.Add(item);
}
foreach (Item item in lstItemsAdded.Items)
{
    var PersonItemObject = new YourType();
    PersonItemObject.FirstName = txtFirstName.Text;
    PersonItemObject.LastName = txtLastName.Text;
    ...
}

在每次迭代中,您都要更新同一对象的属性,然后将其插入列表中。因此,在结束列表中包含对同一对象的多个引用

您应该为每次迭代创建新对象:

foreach (Item item in lstItemsAdded.Items)
{
    PersonItem item = new PersonItem(); //just guessing the type here
    item.FirstName = txtFirstName.Text;
    ...
    PersonItemsList.Add(item);
}
foreach (Item item in lstItemsAdded.Items)
{
    var PersonItemObject = new YourType();
    PersonItemObject.FirstName = txtFirstName.Text;
    PersonItemObject.LastName = txtLastName.Text;
    ...
}

您有一个PersonieMobject,并且在每次迭代中都会对其进行更改。如果您希望列出PersonieMobject,请在每次迭代中创建一个新实例:

foreach (Item item in lstItemsAdded.Items)
{
    PersonItem item = new PersonItem(); //just guessing the type here
    item.FirstName = txtFirstName.Text;
    ...
    PersonItemsList.Add(item);
}
foreach (Item item in lstItemsAdded.Items)
{
    var PersonItemObject = new YourType();
    PersonItemObject.FirstName = txtFirstName.Text;
    PersonItemObject.LastName = txtLastName.Text;
    ...
}

您有一个PersonieMobject,并且在每次迭代中都会对其进行更改。如果您希望列出PersonieMobject,请在每次迭代中创建一个新实例:

foreach (Item item in lstItemsAdded.Items)
{
    PersonItem item = new PersonItem(); //just guessing the type here
    item.FirstName = txtFirstName.Text;
    ...
    PersonItemsList.Add(item);
}
foreach (Item item in lstItemsAdded.Items)
{
    var PersonItemObject = new YourType();
    PersonItemObject.FirstName = txtFirstName.Text;
    PersonItemObject.LastName = txtLastName.Text;
    ...
}

您有一个PersonieMobject,并且在每次迭代中都会对其进行更改。如果您希望列出PersonieMobject,请在每次迭代中创建一个新实例:

foreach (Item item in lstItemsAdded.Items)
{
    PersonItem item = new PersonItem(); //just guessing the type here
    item.FirstName = txtFirstName.Text;
    ...
    PersonItemsList.Add(item);
}
foreach (Item item in lstItemsAdded.Items)
{
    var PersonItemObject = new YourType();
    PersonItemObject.FirstName = txtFirstName.Text;
    PersonItemObject.LastName = txtLastName.Text;
    ...
}

您有一个PersonieMobject,并且在每次迭代中都会对其进行更改。如果您希望列出PersonieMobject,请在每次迭代中创建一个新实例:

foreach (Item item in lstItemsAdded.Items)
{
    PersonItem item = new PersonItem(); //just guessing the type here
    item.FirstName = txtFirstName.Text;
    ...
    PersonItemsList.Add(item);
}
foreach (Item item in lstItemsAdded.Items)
{
    var PersonItemObject = new YourType();
    PersonItemObject.FirstName = txtFirstName.Text;
    PersonItemObject.LastName = txtLastName.Text;
    ...
}

这是因为您总是更改相同的
Personimobject
。每次都应创建此对象的新版本,并将其添加到列表中

foreach (Item item in lstItemsAdded.Items)
{
    var newObject = new PersonItemObject();
    newObject.FirstName = txtFirstName.Text;
    newObject.LastName = txtLastName.Text;
    newObject.ID = txtID.Text;
    newObject.Email = txtEmail.Text;
    newObject.Age = Convert.ToInt32(txtAge.Text);

    newObject.Item.ItemCode = item.ItemCode;
    newObject.Item.ItemDescription = item.ItemDescription;
    newObject.Item.ItemName = item.ItemName;
    newObject.Item.ItemPrice = item.ItemPrice;

    PersonItemsList.Add(newObject);
}

这是因为您总是更改相同的
Personimobject
。每次都应创建此对象的新版本,并且