C# 通过C在MySQL中检查和创建视图#

C# 通过C在MySQL中检查和创建视图#,c#,mysql,C#,Mysql,我需要能够看到我的MySQL数据库中是否已经存在一个视图,以及它是否没有通过c#创建一个视图。如果可能的话,我真的需要一点帮助和一个正确的方向。您不能使用创建或替换视图名称作为 您不能将创建或替换视图名称用作 您可以使用information\u schema来查询是否存在服务器对象,即您案例中的视图。我在C#中的示例代码片段如下所示 String conn = @"Data Source=myserverName; Initial Catalog=myCatalogName;In

我需要能够看到我的MySQL数据库中是否已经存在一个视图,以及它是否没有通过c#创建一个视图。如果可能的话,我真的需要一点帮助和一个正确的方向。

您不能使用创建或替换视图名称作为

您不能将创建或替换视图名称用作

您可以使用information\u schema来查询是否存在服务器对象,即您案例中的视图。我在
C#
中的示例代码片段如下所示

String conn = @"Data Source=myserverName;
       Initial Catalog=myCatalogName;Integrated Security=True";
string cmdStr = "select count(*) from 
      information_schema.views where table_schema = 'mySchemaName' 
      AND table_name = 'MyViewName'";

using (MySqlConnection conn = new MySqlConnection(conn))
{
    MySqlCommand cmd = new MySqlCommand(cmdStr, conn);
    conn.Open();
    MySqlDataReader reader = cmd.ExecuteReader();
    while (reader.Read())
    {
       int count = reader.GetInt32(0);
       if (count == 0)
       {
           MessageBox.Show("View does not exists!");
             MySqlCommand command = new MySqlCommand("Create View myView
             as select
             * from myTable;", conn)
           command.ExecuteNonQuery();

       }
       else if (count == 1)
       {
           MessageBox.Show("View exists!");
       }
        conn.Close();
    }
}

您可以使用information\u schema来查询是否存在服务器对象,即您案例中的视图。我在
C#
中的示例代码片段如下所示

String conn = @"Data Source=myserverName;
       Initial Catalog=myCatalogName;Integrated Security=True";
string cmdStr = "select count(*) from 
      information_schema.views where table_schema = 'mySchemaName' 
      AND table_name = 'MyViewName'";

using (MySqlConnection conn = new MySqlConnection(conn))
{
    MySqlCommand cmd = new MySqlCommand(cmdStr, conn);
    conn.Open();
    MySqlDataReader reader = cmd.ExecuteReader();
    while (reader.Read())
    {
       int count = reader.GetInt32(0);
       if (count == 0)
       {
           MessageBox.Show("View does not exists!");
             MySqlCommand command = new MySqlCommand("Create View myView
             as select
             * from myTable;", conn)
           command.ExecuteNonQuery();

       }
       else if (count == 1)
       {
           MessageBox.Show("View exists!");
       }
        conn.Close();
    }
}

我可以(除了对这类事情很陌生之外)。如果它已经存在-我不想重新创建它。不管怎样,每次用户查询视图时,数据库引擎都会重新创建数据。这里唯一的区别是使用或替换。如果要替换现有视图,请不要放置或替换。如果视图不存在,创建或替换将创建一个新视图。我想写:如果不想替换视图,请不要放置或替换。。。错别字,如果这是误导的话,很抱歉。我可以(除了对这类事情很陌生之外)。如果它已经存在-我不想重新创建它。不管怎样,每次用户查询视图时,数据库引擎都会重新创建数据。这里唯一的区别是使用或替换。如果要替换现有视图,请不要放置或替换。如果视图不存在,创建或替换将创建一个新视图。我想写:如果不想替换视图,请不要放置或替换。。。错别字,如果这是误导的话,很抱歉。谢谢你比纳亚-这也是一个很大的帮助-非常感谢。谢谢你比纳亚-这也是一个很大的帮助-非常感谢。