2017-10-20 79 views
0

我有一個用戶可以預訂導師的網絡表單。但他們必須先選擇課程/主題,日期和時間進行預訂。我有一個運行數據庫的方法來檢查課程,日期和時間是否不在同一時間出現在表中。換句話說,它檢查預訂是否可用,或者是否有人已經預訂了該特定日期和時間的課程。在'and'附近預期條件的上下文中指定的非布爾類型的表達式。 C#

代碼:

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); 
     } 
    } 

它示出了該誤差

其中條件預計在上下文指定的非布爾類型的表達式,鄰近 '和'

+1

爲什麼你在'[Course = @ course]'中使用方括號?別。 – CodeCaster

回答

0

幾件事

  1. 固定支架,例如使用[時間] = @時間而不是[時間= @時間]
  2. 檢查空白/空值的過程,日期和時間。
  3. 檢查字符串變量「date」是否會轉換爲有效日期。
+0

我把驗證,以確保所有的變量不能爲空,我做了一個轉換已經日期到短日期。我想只會修正括號 –

相關問題