title: Drop a table if it exists in C#?
body: <p>I want to drop a table only if it exists , in C# with MySql . </p>
  
  <p>Consider the following code: </p>
  
  <pre><code>namespace CSharpMySqlSample
  {
     class Example2
     {
        static void Main()
        {
           String str = @"server=localhost; database=sakila; uid=root;                password=root;";
           MySqlConnection con = null;
           try
           {
              con = new MySqlConnection(str);
              con.Open(); //open the connection        
              String cmdText = @"drop table `sakila`.`testable` if exists"; // this one drops a table 
              MySqlCommand cmd = new MySqlCommand(cmdText, con);
              cmd.Prepare();
              cmd.ExecuteNonQuery(); //execute the mysql command
           }
           catch (MySqlException err)
           {
              String outp = err.ToString();
              Console.WriteLine("Error: " + err.ToString());
           }
           finally
           {
              if (con != null)
              {
                 con.Close(); //close the connection
              }
           } //remember to close the connection after accessing the database
        }
     }
  }
  </code></pre>
  
  <p>It produced : </p>
  
  <blockquote>
    <p>"MySql.Data.MySqlClient.MySqlException: You have an error in your SQL
    syntax; check the manual that corresponds to your MySQL server version
    for the right syntax to use near 'if exists' at line 1\r\n   at
    MySql.Data.MySqlClient.MySqlStream.ReadPacket()\r\n   at
    MySql.Data.MySqlClient.NativeDriver.GetResult(Int32&amp; affectedRow,
    Int64&amp; insertedId)\r\n   at
    MySql.Data.MySqlClient.Driver.GetResult(Int32 statementId, Int32&amp;
    affectedRows, Int64&amp; insertedId)\r\n   at
    MySql.Data.MySqlClient.Driver.NextResult(Int32 statementId, Boolean
    force)\r\n   at
    MySql.Data.MySqlClient.MySqlDataReader.NextResult()\r\n   at
    MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior
    behavior)\r\n   at
    MySql.Data.MySqlClient.MySqlCommand.ExecuteReader()\r\n   at
    MySql.Data.MySqlClient.MySqlCommand.ExecuteNonQuery()\r\n   at
    CSharpMySqlSample.Example2.Main()</p>
  </blockquote>
  
  <p>So what's wrong with the query ? </p>