如何获取两个不同的文本框值并存储在数据库中

时间:2016-11-29 19:14:14

标签: c# asp.net list

我有40个文本框代码在

之下
<asp:textbox ID="txtemail" runat="server" Cssclass="form-control">
<asp:textbox ID="txtname" runat="server"  Cssclass="name">
<asp:textbox ID="txtemail2" runat="server"  Cssclass="form-control">
<asp:textbox ID="txtname2" runat ="server"  Cssclass="name">

就像我有40个文本框20用于电子邮件和20个用于名称。我需要将这些值存储到数据库中,因为我在代码下使用

foreach (var textbox in panelemail.Controls.OfType<TextBox>())
    {
        string emailtxt = textbox.Text;
        BAL_F2290 objbalemail = new BAL_F2290();
        Form2290.Form objemail = new Form2290.Form();
        objemail.UserID = Convert.ToString(Session["USER_KEY"]);
        objemail.Email = txtemail.text;
        objemail.name = txtname.text;
        string res = objbalemail.Referral_Email_BAL(objemail);
    }

我的问题是只有一个值可以传递电子邮件或名称,但我需要一次传递两个值。如何在一个循环中传递两个值。

2 个答案:

答案 0 :(得分:0)

完整的解决方案是更改视图模型,以便拥有名称和电子邮件文本框的逻辑组。如果您需要快速修复枚举中每两个连续元素的分组,请参阅以下代码:

var elements = Enumerable.Range(1, 10);

System.Diagnostics.Debug.Assert(elements.Count() % 2 == 0);
var oddElements = elements.Where((elem, index) => index % 2 == 0);
var evenElements = elements.Where((elem, index) => index % 2 == 1);
var pairs = oddElements.Zip(evenElements, (first, second) => new { first, second });

foreach (var item in pairs)
{
    DoSomething(item.first, item.second);
}

您可以将elements替换为您的控件集合,将DoSomething替换为您计划用姓名和电子邮件处理的逻辑。

答案 1 :(得分:0)

首先重命名初始TextBoxes名称,如下所示

<asp:textbox ID="txtemail1" runat="server" Cssclass="form-control">
                     ----^
<asp:textbox ID="txtname1" runat="server"  Cssclass="name">
                    ----^  

同样对其他TextBox也一样明智。 之后执行迭代操作以在panelemail控件中查找控件,如下所述。

for(int i=1;i <= 20;i++) 
{
    //Find the control using ID of Textbox and value of i
    TextBox emailTxt = panelemail.FindControl("txtemail"+i) AS TextBox;
    TextBox nameTxt = panelemail.FindControl("txtname"+i) AS TextBox;  

    string emailValue = String.Empty;
    if(emailTxt !=null)
    emailValue = emailTxt.Text;

    string nameValue = String.Empty;
    if(nameTxt !=null)
    nameValue = nameTxt.Text;

    BAL_F2290 objbalemail = new BAL_F2290();
    Form2290.Form objemail = new Form2290.Form();
    objemail.UserID = Convert.ToString(Session["USER_KEY"]);
    objemail.Email = emailValue;
    objemail.name = nameValue ;
    string res = objbalemail.Referral_Email_BAL(objemail);
}