将文本框值存储到数据库中

时间:2013-06-24 01:59:32

标签: c# database textbox panel

我正在做填字游戏,我在这样的面板中有100个文本框: enter image description here

每个文本框的ID都是00 - 99,因为它有100个。

enter image description here

第一行的ID为00-09,第二行的ID为10-19,依此类推。

当用户在某个文本框中输入内容时,null将会显示一些文本框。如何将值从某个id的文本框保存到数据库?例如,上面的图片HELP22的文本框ID将具有值H23的ID将具有值E,id 24的值为L25的ID值为P

我不想保存文本框的null值,我想保存不是null的文本框的值。我还需要考虑他们的文本框ID,这样当我填充它们时,我只需要通过ID插入它们。

我是C#的新手,感谢您提供任何帮助/建议/解决方案。

这是我的代码:

protected void Page_Load(object sender, EventArgs e)
{
    //hw.Write("<table>");
    for (int i = 0; i <= 9; i++)
    {
        //hw.Write("<tr>");
        for (int j = 0; j <= 9; j++)
        {
            TextBox tb = new TextBox();
            tb.MaxLength = (1);
            tb.Width = Unit.Pixel(40);
            tb.Height = Unit.Pixel(40);
            tb.ID = i.ToString() + j.ToString(); // giving each textbox a different id  00-99 
            Panel1.Controls.Add(tb); 
        }
        Literal lc = new Literal();
        lc.Text = "<br />";
        Panel1.Controls.Add(lc);
    }
}

protected void btnShow_Click(object sender, EventArgs e)
{
    foreach (Control control in Panel1.Controls)
    {
        var textBox = control as TextBox;   
        if (textBox != null)
        {
            if (string.IsNullOrEmpty(textBox.Text))
            {
                textBox.Style["visibility"] = "hidden";
            }
            // textBox.Enabled = false;
            textBox.Text = "";
        }
    } 
}

2 个答案:

答案 0 :(得分:2)

执行此操作的正确方法是将这些文本框包装在Repeater或Datalist控件中。您可以从here准备好这些控件。这样,当行数增加时,您不必更改为循环或硬编码值。

至于存储给定Id的值的问题,您可以在数据库中定义行#和col#,并在#行和col#上排序,这应该可行。

答案 1 :(得分:1)

最简单的方法是制作TextBox的2D数组(或List)。在您创建TextBoxes的位置:

List<List<TextBox>> textBoxList = new List<List<TextBox>>();
for (int i = 0; i <= 9; i++)
{
    List<TextBox> textBoxRow = new List<TextBox>(); //this could be columns, not sure
    for (int j = 0; j <= 9; j++)
    {
        TextBox tb = new TextBox();
        ....
        textBoxRow.Add(tb);
    }
    ...
    textBoxList.Add(textBoxRow);
}

现在您可以读取/写入这些数组条目,例如:

string readValue = textBoxList[2][5].Text;
textBoxList[1][7].Text = "asdf";