写了一段可读性超差的代码,望高手不吝赐教!~
写了一段可读性超差的代码,望高手不吝赐教!~
需求如下:
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
{
5
for (int i = 0; i < A.Tables[0].Rows.Count; i++)
6
{
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++)
13
{
14
if (A.Tables[0].Rows[i]["ID"].ToString() == B.Tables[0].Rows[j]["Code"].ToString())
15
{
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 )
27
{
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++)
36
{
37
int ID = 0;
38
if (A.Tables[0].Rows[i]["ID"].ToString() == B.Tables[0].Rows[k]["Code"].ToString())
39
{
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();
conn.Open();2
bool x = true;3
if (A.Tables[0].Rows.Count > 0)4
{5
for (int i = 0; i < A.Tables[0].Rows.Count; i++)6
{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++)13
{14
if (A.Tables[0].Rows[i]["ID"].ToString() == B.Tables[0].Rows[j]["Code"].ToString())15
{16
x = false;17
break;18
}19

20
else21
x = true;22
continue;23
}24

25
//若小循环结束仍不相等,则将A表ID作为B表Code添加到B表26
if (x == true )27
{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中整项插入C34

35
for (int k = 0; k < B.Tables[0].Rows.Count; k++)36
{37
int ID = 0;38
if (A.Tables[0].Rows[i]["ID"].ToString() == B.Tables[0].Rows[k]["Code"].ToString())39
{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();

浙公网安备 33010602011771号