即时创建一个列表来更新MySql数据库,其值为文本框,我该怎么做这样的工作?
如果我使用
verdierX[0] = (int)decimal.Parse(box1.Text);
它运作得很好 但是当我尝试在这样的循环中使用它时会爆炸。有人建议如何解决这个问题?
int[] dbNavnX = new int[8];
int[] verdierX = new int[8];
string[] boxList = new string[8];
private void Form1_Load(object sender, EventArgs e)
{
boxList[0] = "box1.Text";
boxList[1] = "box2.Text";
boxList[2] = "box3.Text";
boxList[3] = "box4.Text";
boxList[4] = "box5.Text";
boxList[5] = "box6.Text";
boxList[6] = "box7.Text";
boxList[7] = "box8.Text";
}
private void sumX()
{
for (int sum = 0; sum < 8; sum++)
{
verdierX[sum] = (int)decimal.Parse(boxList[sum]);
}
}
答案 0 :(得分:2)
您应该更改boxList数组以保存对TextBoxes的引用,而不是字符串:
TextBox[] boxList = new TextBox[8];
和
boxList[0] = box1;
boxList[1] = box2;
...
然后它会起作用。
答案 1 :(得分:1)
尝试:
int[] verdierX = new int[8];
private void Form1_Load(object sender, EventArgs e)
{
for (var i = 0; i < 8; i++)
{
TextBox tb = (TextBox)FindControl("box" + i.ToString());
verdierX[i] = (int)decimal.Parse(tb.Text);
}
}
答案 2 :(得分:1)
或者,Linq的善良如何:
var sumX = from Control control in Controls
where
control.GetType() == typeof (TextBox)
&& control.Name.StartsWith("box")
select Convert.ToInt32(((TextBox)control).Text);
答案 3 :(得分:0)
如果您没有使用WPF,则可以访问“me.controls”,它是表单中所有可用控件的数组。但请注意,如果您的文本框位于面板或其他容器上,则使用object.controls获取文本框。
希望有效。