写了一段可读性超差的代码,望高手不吝赐教!~

写了一段可读性超差的代码,望高手不吝赐教!~
需求如下:
1、从A表中取ID,对比B表Code,若B表中缺少对应A表ID的Code,则将A表ID作为B表Code添加到B表;
2、将B表插入完全后,再用A表ID与B表Code对比,取出A表中(A)ID==(B)Code的项,连同整行插入到C表中;

我写的代码如下:

 

 1 conn.Open();
 2              bool  x  =   true ;
 3              if  (A.Tables[ 0 ].Rows.Count  >   0 )
 4 ExpandedBlockStart.gifContractedBlock.gif             {
 5                for (int i = 0; i < A.Tables[0].Rows.Count; i++)
 6ExpandedSubBlockStart.gifContractedSubBlock.gif                {
 7                    DataRow dr = A.Tables[0].Rows[i];
 8                    
 9                    //此处循环想达到目的:若(A)ID==(B)Code,直接跳过下面if语句,故设x = false;
10                    //若(A)ID !=(B)Code,继续循环,循环结束仍然不等,跳出小循环继续向下执行,故设x = true;
11
12                    for (int j = 0; j < B.Tables[0].Rows.Count; j++)
13ExpandedSubBlockStart.gifContractedSubBlock.gif                    {
14                        if (A.Tables[0].Rows[i]["ID"].ToString() == B.Tables[0].Rows[j]["Code"].ToString())
15ExpandedSubBlockStart.gifContractedSubBlock.gif                        {
16                            x = false;
17                            break;
18                        }

19
20                        else
21                            x = true;
22                            continue;
23                    }

24
25                    //若小循环结束仍不相等,则将A表ID作为B表Code添加到B表
26                    if (x == true )
27ExpandedSubBlockStart.gifContractedSubBlock.gif                    {
28                        Code = A.Tables[0].Rows[i]["ID"].ToString();
29                        InsertBCommand.CommandText = string.Format(insertSql);
30                        InsertBCommand.ExecuteNonQuery();
31                    }

32               
33                    //与上一个for循环判断完全相同,此处表示若(A)ID==(B)Code,将其A中整项插入C
34
35                    for (int k = 0; k < B.Tables[0].Rows.Count; k++)
36ExpandedSubBlockStart.gifContractedSubBlock.gif                    {
37                        int ID = 0;
38                        if (A.Tables[0].Rows[i]["ID"].ToString() == B.Tables[0].Rows[k]["Code"].ToString())
39ExpandedSubBlockStart.gifContractedSubBlock.gif                        {
40                            IndicatorID = int.Parse(B.Tables[0].Rows[k]["ID"].ToString());
41                            SelectCCommand.CommandText = string.Format(selectSqlMonthBase);
42                            InsertCCommand.CommandText = string.Format(insertSql);
43                            InsertCCommand.ExecuteNonQuery();
44                            break;
45                        }

46
47                        else continue;
48                    }

49                }

50            }

51
52             conn.Close();

转载于:https://www.cnblogs.com/xubensave/archive/2008/07/29/2430465.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值