求一段循环语句
当前有6个Label.(Label1~~~~Label6),
分别取数据库里面的subject1~~~subject6
分别显示一个人的拥有物品.
如:
小明的物品:
苹果 香蕉
这里就显示了2个值.
现在下面有一组单选框对这个人再添加物品.
这样数据库里面的
subject3就会有值了.
考虑了一下,用if是可以完成数量少的数据处理。
求一段代码.实现。
当label1不为空且label2为空时,开始对subject2插入数据
当label2不为空且label3为空时,开始对subject3插入数据
…………
当labeln不为空且label(n+1)为空时,对subject(n+1)插入数据
(或者也可以直接检测数据库里面的subject的值,从subject1开始往后面检测,谁最先为空,则向这个列插入数据。)
会想不会做。
求高手指教一二。感激不尽。
c#语言
.net2.0。
------解决方案--------------------想要的是这个吧?
int i;
for (i = 1; i < 6; i++) {
String sLabel;
sLabel = "Label " + i.ToString;
Control pLabel = FindControl(sLabel);
}
------解决方案--------------------其实你有没有试过换一种思维呢?你只不过想向数据库里插入记录,然后在Label控件上显示出来,却想得那么复杂,其实你不用管什么labeln不为空且label(n+1)为空时,对subject(n+1)插入数据,你向数据库插入记录,那么在数据库中这条记录已经就是按一定顺序排列好得了,然后你只需要把这些数据按顺序取出来(sql语句就可以了)填充Label,比如目前里面有6条数据,因此你可以生成6个Label用来存放这6条数据就可以了,如果要填新物品的话,添加之后可以再查询一下目前有几条记录,可以对应的再生成几个6Label来存放数据的,LZ好像有点在钻牛角尖哦~
------解决方案--------------------最好设计成一对多的结构,如果一定要如此,可参考如下.
先将记录查询出来.
如
string sField = " ";
for(int i= 1 ; i < 7 ; i++)
{
string sText = ((Label) this.FindContrl( "Label "+i.ToString())).Text;
if(sText.Trim() == " ")
{
sField = "subject "+i.ToString();
break;
}
}
------解决方案--------------------如果只是存储简单数据,不同通过它与其他字段有关联的话,用amandag(高歌) 的挺好的,
用的是候用Split获得一数组即可,
------解决方案--------------------