我只想在 C# 和 MySql 中删除存在的表。
考虑以下代码:
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
}
}
}
它产生了:
"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& affectedRow, Int64& insertedId)\r\n at MySql.Data.MySqlClient.Driver.GetResult(Int32 statementId, Int32& affectedRows, Int64& 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()
那么查询有什么问题呢?
最佳答案
试试这个:
DROP TABLE IF EXISTS sakila.testtable;
关于c# - 如果表存在于 C# 中,则删除该表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19848335/