日期:2014-05-18  浏览次数:20372 次

求一段循环语句
当前有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获得一数组即可,
------解决方案--------------------
探讨
1 小明 苹果,香蕉,XX,YY

取的时候用字符串函数对,号分隔后取出来