根据文本框的数量

时间:2018-05-08 11:09:42

标签: c# winforms

我正在使用Windows窗体 - 我有x个文本框,具体取决于用户是否指定x = 2,3,4或5是需要添加到我的数据库的行数。由于用户只会向x个文本框添加信息 - 到目前为止我已经获得了代码的前半部分,我只是不确定如何使用循环来实现文本框部分......

    for (int x = 0; x <= TextBox.Count - 1; x++)// This is where I struggle for each textbox
    {
        MAcon.Open();
        OleDbCommand cmd = new OleDbCommand("Insert into [Parts Inventroy]([Part ID],[Part Name],[Product Family ID] values(@PartID, @PartName, @ProductFamilyID)", MAcon);
        cmd.Parameters.AddWithValue("@ProductFamilyID", pfName.Text);
        cmd.ExecuteNonQuery();
        MAcon.Close();
    }

1 个答案:

答案 0 :(得分:0)

我不确定我是否正确理解你的问题。

在您的应用程序中,用户提供输入(例如X)。根据该数字,您可以创建X个文本框。然后从所有这些文本框中,您获取用户输入并将其放入数据库中。

如果以上是正确的,以下是您可以实现的目标:

// Private member to hold the use created textboxes
List<TextBox> textboxes = new List<TextBox>();

// Sample code for your actual method where textboxes are added
public void UserAddsTextBoxes(int userInput)
{
    for (int index = 0; index < userInput; index++)
    {
        TextBox current = new TextBox();
        Controls.Add(current);

        // Also add it to our list for later
        textboxes.Add(current);
    }
}

public void OnSavingData()
{
    textboxes.ForEach(x =>
    {
        MAcon.Open();
        OleDbCommand cmd = new OleDbCommand("Insert into [Parts Inventroy]([Part ID],[Part Name],[Product Family ID] values(@PartID, @PartName, @ProductFamilyID)", MAcon);
        cmd.Parameters.AddWithValue("@ProductFamilyID", x.Text);
        cmd.ExecuteNonQuery();
        MAcon.Close();
    });
}