首页 新闻 会员 周边 捐助

关于for循环的处理

0
悬赏园豆:10 [已关闭问题] 关闭于 2013-05-24 15:46
 1         //进行归档
 2         private void btFile_Click(object sender, EventArgs e)
 3         {
 4             //获得已选择的项
 5             this.getSelected();
 6 
 7            // int kk = this.htSelected.Count;//选中的行数
 8             if (this.htSelected.Count == 0)
 9             {
10                 MessageBox.Show("请先选择需要归档的资产卡片!");
11                 return;
12             }
13             int n = 0;
14             for (int a = 0; a < this.htSelected.Count; a++)
15             {
16                 //MessageBox.Show(this.dgvResult.Rows[kk].Cells[16].Value.ToString());
17                 if (this.dgvResult.Rows[a].Cells[16].Value.ToString() == "归档")
18                 {
19                     MessageBox.Show("该资产卡片已归档,请重新选择!");
20                     n++;
21                 }
22                 else
23                 {
24                     DialogResult dr = MessageBox.Show("是否进行归档?", "", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
25 
26                     if (dr == DialogResult.Yes)
27                     {
28                         //获得归档资产卡片
29                         ArrayList list = new ArrayList(htSelected.Values);
30                         int count = list.Count;
31 
32                         string[] sendHeadBuf = basic.productSendPackage("0", "22820", "0", " ", 农信资产管理.Login._loginId); //查询用户
33                         string[] recordData = new string[count + 1];
34 
35                         for (int i = 1; i <= count; i++)
36                         {
37                             string data = (string)list[i - 1];
38                             string[] ret = data.Split('|');
39                             string cardId = ret[1];//卡片编号
40                             recordData[i] = "|" + cardId + "|";
41                         }
42 
43                         //执行归档操作
44                         ArrayList al_result = null;
45                         al_result = this.extTran(sendHeadBuf, recordData);
46 
47                         if (al_result != null)
48                         {
49                             MessageBox.Show("归档成功!");
50                             //清除已选
51                             this.htSelected = new Hashtable();
52                         }
53                     }
54                 }
55             }
56         }
View Code

我在选择卡片时,里面归档含有归档与未归档的卡片,怎样能去除重复的弹出“该资产卡片已归档,请重新选择!”

望各位大侠能指教一二啊

じ★ve寂寞的主页 じ★ve寂寞 | 初学一级 | 园豆:107
提问于:2013-05-24 11:26
< >
分享
所有回答(4)
0

两个循环顺序倒过来判断,先查有没有没有归档的

越天 | 园豆:8 (初学一级) | 2013-05-24 11:29

具体怎么实现

给个代码

支持(0) 反对(0) じ★ve寂寞 | 园豆:107 (初学一级) | 2013-05-24 12:04
0

就是在for循环里面把你的代码倒过来一下就好啦。最后当n==this.htSelected.Count-1且未进行过归档时 MessageBox.Show("该资产卡片已归档,请重新选择!");

暗夜的萤火虫 | 园豆:8 (初学一级) | 2013-05-24 13:04
0

看你的代码,应该不会重复提示吧?遍历行,遇到已归档的也只会提示一次吧?

幻天芒 | 园豆:37207 (高人七级) | 2013-05-24 13:12
0

是不是每次提交都只提示一次?

是的话 17行加上n==0

JustDotNet | 园豆:229 (菜鸟二级) | 2013-05-24 13:52

晕死,不知道别乱回答,this.dgvResult.Rows[a].Cells[16].Value.ToString(),他是个字符串类型,不是整形,OK????

支持(0) 反对(0) じ★ve寂寞 | 园豆:107 (初学一级) | 2013-05-24 14:36

@じ★ve寂寞: 

哥哥 请看自己的代码13行......

我的意思是 n==0&&this.dgvResult.Rows[a].Cells[16].Value.ToString() == "归档"

支持(0) 反对(0) JustDotNet | 园豆:229 (菜鸟二级) | 2013-05-24 15:01
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册