C# 通过C在MySQL中检查和创建视图#
我需要能够看到我的MySQL数据库中是否已经存在一个视图,以及它是否没有通过c#创建一个视图。如果可能的话,我真的需要一点帮助和一个正确的方向。您不能使用创建或替换视图名称作为 您不能将创建或替换视图名称用作 您可以使用information\u schema来查询是否存在服务器对象,即您案例中的视图。我在C# 通过C在MySQL中检查和创建视图#,c#,mysql,C#,Mysql,我需要能够看到我的MySQL数据库中是否已经存在一个视图,以及它是否没有通过c#创建一个视图。如果可能的话,我真的需要一点帮助和一个正确的方向。您不能使用创建或替换视图名称作为 您不能将创建或替换视图名称用作 您可以使用information\u schema来查询是否存在服务器对象,即您案例中的视图。我在C#中的示例代码片段如下所示 String conn = @"Data Source=myserverName; Initial Catalog=myCatalogName;In
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();
}
}
我可以(除了对这类事情很陌生之外)。如果它已经存在-我不想重新创建它。不管怎样,每次用户查询视图时,数据库引擎都会重新创建数据。这里唯一的区别是使用或替换。如果要替换现有视图,请不要放置或替换。如果视图不存在,创建或替换将创建一个新视图。我想写:如果不想替换视图,请不要放置或替换。。。错别字,如果这是误导的话,很抱歉。我可以(除了对这类事情很陌生之外)。如果它已经存在-我不想重新创建它。不管怎样,每次用户查询视图时,数据库引擎都会重新创建数据。这里唯一的区别是使用或替换。如果要替换现有视图,请不要放置或替换。如果视图不存在,创建或替换将创建一个新视图。我想写:如果不想替换视图,请不要放置或替换。。。错别字,如果这是误导的话,很抱歉。谢谢你比纳亚-这也是一个很大的帮助-非常感谢。谢谢你比纳亚-这也是一个很大的帮助-非常感谢。