2017-10-20 15 views
0

J'ai un formulaire Web où un utilisateur peut réserver un tuteur. Mais ils doivent d'abord choisir un cours/sujet, la date et l'heure de la réservation. J'ai une méthode qui parcourt la base de données pour vérifier si le cours, la date et l'heure n'apparaissent pas dans la table en même temps. En d'autres termes, il vérifie si la réservation est disponible ou si quelqu'un a déjà réservé le cours pour cette date et cette heure.Une expression de type non booléen spécifiée dans un contexte où une condition est attendue, près de 'et'. C#

code:

public void Availability(string course, string time, string date) 
    { 
     try 
     { 
      using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["tlcString"].ConnectionString)) 
      { 
       string message = "Booking already exists"; 
       string query = "Select * From Bookings Where [[email protected]] and [[email protected]] and [[email protected]];"; 
       using (SqlCommand command = new SqlCommand(query, conn)) 
       { 
        command.Parameters.Add("@course", SqlDbType.NVarChar, 50).Value = course; 
        command.Parameters.Add("@time", SqlDbType.NVarChar, 50).Value = time; 
        command.Parameters.Add("@date", SqlDbType.DateTime, 50).Value = date; 

        conn.Open(); 

        using (SqlDataReader dr = command.ExecuteReader()) 
        { 
         if (dr.Read()) 
          ClientScript.RegisterStartupScript(this.GetType(), "myalert", "alert('" + message + "');", true); 

         dr.Close(); 
        } 
        conn.Close(); 
       } 
      } 
     } 

     catch 
     { 
      string error = "Error checking availability of booking"; 
      ClientScript.RegisterStartupScript(this.GetType(), "myalert", "alert('" + error + "');", true); 
     } 
    } 

Il montre cette erreur

Une expression de type non booléen spécifié dans un contexte où une condition devrait, à proximité 'et'

+1

Pourquoi? Ne pas. – CodeCaster

Répondre

0

Quelques éléments

  1. Fixer les crochets, par ex. utilisez [heure] = @ heure au lieu de [heure = heure @]
  2. Vérifiez le cours, la date et l'heure pour les valeurs vides/nulles.
  3. Vérifiez si la variable de chaîne "date" sera convertie en une date valide. Pourquoi utilisez-vous des crochets comme dans `[[Course = @ course]`?)?
+0

J'ai mis en place la validation pour m'assurer que toutes les variables ne peuvent pas être nulles et j'ai fait une conversion déjà de date à date courte. Je suppose que je vais juste réparer les crochets –