使用多个文本框文本来形成JSON字符串

时间:2016-11-10 11:29:58

标签: c# json winforms

我有一个按钮,用于在winforms c#中存储80个文本框的文本值。

此按钮看起来像这样

    private void btnSaveChanges_Click(object sender, EventArgs e)
    {
        //Create new connection to the MongoDB Database and select the database and "table"
        var nol = NetworkOpsLayer.NetworkOpsLayer.CreateForDirectMongoConnection("mongodb://snipip", "snipdbname", "snip");
        //Inser the document starting with the selected node name, id, timestamp and then the entire loan data
        nol.InsertDoc("{ \"LoanName\" : \"" + tvTodoList.SelectedNode.Name + "\", \"AgentName\" : \"" + txtAgentName.Text + "\" }");
    }

这种方法可行,但我最终会得到一个很长的字符串。 nol.InsertDoc("{long JSON string of keys and textboxIDs}")因为每个带有JSON密钥的80个文本框值都将包含在字符串中。

我想知道是否有更好的方法来解决这个问题?是否仍然可以通过循环表单上的每个文本框来形成一个有效的JSON字符串,并为它提供一个与文本框相关的密钥,以便它可以在MongoDB数据库中识别?

1 个答案:

答案 0 :(得分:1)

您可以遍历控件,选择文本框的名称和相应的值,如下所示:

List<string> textboxNames = new List<string>();
List<string> textboxValues = new List<string>();

foreach (var c in this.Controls)
{
    if (c is TextBox)
    {                   
        textboxNames.Add((c as TextBox).Name);
        textboxValues.Add((c as TextBox).Text);
    }
} 

您对这些值的处理取决于您:)