C# 名为';cmdDatabase';无法在此范围中声明,因为它将赋予';cmdDatabase';,

C# 名为';cmdDatabase';无法在此范围中声明,因为它将赋予';cmdDatabase';,,c#,C#,U有2个名为cmdDatabase的变量声明,一个在foreach中,第二个在第5行。错误就是说什么是错的 它隐藏了以下代码: MySqlCommand cmdDatabase = new MySqlCommand((s), conDatabase); 你我们需要为循环中的命令变量使用不同的名称。不要在foreach中重新声明变量,变量名称已在较大的声明空间中使用。最多,您可以使用现有代码重新实例化变量,而不必在行上进行类型声明 MySqlCommand cmdDatabase = n

U有2个名为cmdDatabase的变量声明,一个在foreach中,第二个在第5行。错误就是说什么是错的

它隐藏了以下代码:

MySqlCommand cmdDatabase = new MySqlCommand((s), conDatabase);

你我们需要为循环中的命令变量使用不同的名称。

不要在
foreach
中重新声明变量,变量名称已在较大的声明空间中使用。最多,您可以使用现有代码重新实例化变量,而不必在行上进行类型声明

    MySqlCommand cmdDatabase = new MySqlCommand("DROP TABLE IF EXISTS `q_mem_sur`; create table q_mem_sur as SELECT Count(*) As rowa,  member.Ssurname,  Sum(Case When ((member.status = '1')) Then 1 Else 0 End) As Status11 From member Group By member.Ssurname Order By rowa Desc;", conDatabase);
但这不太可能是你想要做的。您应该更新
CommandText
属性和任何参数,并保留相同的实例。您还应该养成使用语句的习惯,以便正确关闭和释放连接和命令对象

 cmdDatabase = new MySqlCommand(s, conDatabase);
 cmdDatabase = new MySqlCommand(s, conDatabase);
using (MySqlConnection myConnection = ...)
using (MySqlCommand myCommand = ...)
{
     // database code here
}