Je dois utiliser le même nom de variable pour déclarer la chaîne de connexion. Mais quand je fais cela, je vais avoir d'autres erreurs. J'ai déclaré "SqlConnection sqlCon = new SqlConnection (strCon);" pour la première variable, puis-je l'utiliser à nouveau? Selon mon professeur, je devrais utiliser la même variable.Utilisation Le même nom de variable dans la portée
string strCon = Database.GetConStr();
SqlConnection sqlCon = new SqlConnection(strCon);
try
{ string strSql = "SELECT Name, ID FROM student WHERE Status = 'A' ORDER BY Name";
SqlCommand sqlCmd = new SqlCommand(strSql, sqlCon);
sqlCon.Open();
SqlDataReader reader = sqlCmd.ExecuteReader();
while (reader.Read())
{
ddlStaff.Items.Add(new ListItem(reader["Name"].ToString(), reader["ID"].ToString()));
}
reader.Close();
}
catch (Exception ex)
{
Session["Error"] = "Error in getting ... System Msg: " + ex.Message;
Server.Transfer("Error.aspx");
}
finally
{
if (sqlCon.State == ConnectionState.Open)
sqlCon.Close();
}
string strCon2 = Database.GetConStr();
sqlCon = new SqlConnection(strCon2);
try
{ string strSql2 = "SELECT Desc1, Desc2 FROM Parameter WHERE Paracode1 = 'Test' AND Status = 'A' ORDER BY Desc1";
SqlCommand sqlCmd2 = new SqlCommand(strSql2, sqlCon);
sqlCon.Open();
SqlDataReader reader2 = sqlCmd2.ExecuteReader();
while (reader2.Read())
{
ddlModule.Items.Add(new ListItem(reader2["Desc1"].ToString(), reader2["Desc22"].ToString()));
}
reader2.Close();
}
catch (Exception ex)
{
Session["Error"] = "Error in getting ... System Msg: " + ex.Message;
Server.Transfer("Error.aspx");
}
finally
{
if (sqlCon.State == ConnectionState.Open)
sqlCon.Close();
}
Est-ce parce que je ne peux pas utiliser la même variable?
Merci. J'ai essayé la première méthode avant. ça n'a pas marché. la deuxième méthode fonctionne parfaitement bien. :) – Nana
Je remarque que vous avez confondu "scope" avec "espace de déclaration". Il est souvent parfaitement légal de déclarer deux variables du même nom dans la même portée. Par exemple, classe C {int x; void M() {int x; }} - ici il y a deux variables appelées x et les deux déclarées dans la portée définie par la classe C. La différence est qu'elles sont dans des espaces de déclaration différents, ce qui le rend légal. –
okay je vais ajouter cette clarification. –