我正在检索控制不能从一个案件labe(案例"尤文图斯":')到另一个案件。知道为什么吗?我试图打开一个不同的表单来打印基于查询的结果。感谢
using (SqlConnection connection = new SqlConnection("Data Source=xxxx;Initial Catalog=Marketing;Integrated Security=True"))
{
SqlCommand command = new SqlCommand("select [Team] from baf where id=(select max(id) from baf)", connection);
connection.Open();
SqlDataReader read = command.ExecuteReader();
while (read.Read())
{
String AAA = (read["Team"].ToString());
switch (AAA)
{
case "Arsenal":
Print dd = new Print();
dd.Show();
break;
case "Juventus":
Print2 dd2 = new Print2();
dd2.Show();
case "Porto":
Print3 dd3 = new Print3();
dd3.Show();
break;
case "Bayern Munich":
Print4 dd4 = new Print4();
dd4.Show();
break;
}
this.Close();
}
}
}
答案 0 :(得分:4)
与C或C ++不同,C#不允许switch/case
语句,其中控制流可以通过"从一个case
进入下一个。
在c中,这将起作用
switch(i)
{
case 1: printf("1");
case 2: printf("1 or 2"); break;
}
如果1
为1,则会打印1 or 2
和 i
,但如果1 or 2
为2则仅打i
。
在c#中,这是不允许的。每个非空case
必须退出整个switch
语句。这可以通过
break
return
throw
甚至goto
因此,您错过了break
上的case "Juventus"
声明:
case "Juventus":
Print2 dd2 = new Print2();
dd2.Show();
break; // you forgot that
编辑:正如其他人提到的那样, empty 案例陈述可以通过:
switch(i)
{
case 1:
case 2:
// do something if i is 1 or 2
break;
}
答案 1 :(得分:0)
添加休息;在陈述之前
case "porto":