J'ai une erreur dans mon code répertorié comme: 'DatabaseLayer': le type utilisé dans une instruction using doit être implicitement convertible en 'System.IDispsable'.le type utilisé dans une instruction using doit être implicitement convertible en 'System.IDisposable'
J'ai essayé d'examiner MSDN et d'autres questions de débordement de pile, mais je n'ai pas résolu l'erreur. J'utilise Visual Studio 2015 avec .NET Framework 4.5.1.
L'erreur est dans la ligne 56, mais j'ai commenté au-dessus de la ligne avec erreur. Voici le code dans mon fichier:
public class UserDataAccessLayer : IDisposable
{
public bool Create(string username, string pwd, string email)
{
bool retVal = false;
SqlCommand sqlCmd = new SqlCommand("CreateUser");
sqlCmd.CommandType = CommandType.StoredProcedure;
sqlCmd.Parameters.AddWithValue("@Username", username);
sqlCmd.Parameters.AddWithValue("@Pwd", pwd);
sqlCmd.Parameters.AddWithValue("@Email", email);
int result = new DatabaseLayer().ExecuteNonQuery(sqlCmd);
if (result != Int32.MaxValue)
retVal = true;
return retVal;
}
public bool Create(string username, string pwd, string email, int roleId)
{
bool retVal = false;
SqlCommand sqlCmd = new SqlCommand("CreateUser");
sqlCmd.CommandType = CommandType.StoredProcedure;
sqlCmd.Parameters.AddWithValue("@Username", username);
sqlCmd.Parameters.AddWithValue("@Pwd", pwd);
sqlCmd.Parameters.AddWithValue("@Email", email);
int result = new DatabaseLayer().ExecuteNonQuery(sqlCmd);
if (result != Int32.MaxValue)
retVal = true;
return retVal;
}
public void Dispose()
{
throw new NotImplementedException();
}
public User GetUserInfo(string username, string pwd)
{
User user = null;
using (DatabaseLayer dbLayer = new DatabaseLayer())
{
SqlCommand sqlCmd = new SqlCommand("GetUserInfo");
sqlCmd.CommandType = CommandType.StoredProcedure;
sqlCmd.Parameters.AddWithValue("@Username", username);
sqlCmd.Parameters.AddWithValue("@Pwd", pwd);
user = dbLayer.GetEntityList<User>(sqlCmd).FirstOrDefault();
}
return user;
}
}
DatabaseLayer – Will
Bien que l'erreur soit claire, le code fourni dans la publication n'est pas - il n'y a pas d'information sur le type 'DatabaseLayer'. des conseils sur le code d'affichage. –