我即将部署我的应用程序并遇到了一些麻烦。
我有app.settings中保存的数据库的连接字符串,需要一种方法来检查程序首次启动时数据库是否存在,如果没有,我需要程序在启动之前创建它该计划。
我假设它将是一个mysql语句来检查db是否存在,如果不是create。但是,我不知道在哪里或如何做到这一点,我可以创建一个空白数据库的mysql转储,其中已经创建了表等,并使用它吗?
我已经在本地存储了mysql dll文件,所以没有问题,它只是在应用程序运行之前创建字符串想要连接的数据库,这样就不会立即出现连接错误。
感谢。
答案 0 :(得分:0)
您可以通过运行以下SQL语句来执行此操作:
SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = "my_db"
如果结果集中不存在,则返回后可以创建它。
这确实会产生有关MySQL权限的问题,以及您的应用程序是否应具有启用此类检查的用户权限。
根据评论进行修改。
目前尚不清楚您是否创建了连接字符串 - 我假设情况最糟糕,并且它是设置的一部分,因此您的客户可以输入它(如果您确实知道,下面的过程会简化。< / p>
我会将连接字符串传递给MySqlConnectionStringBuilder
类的构造函数,这样就可以使用MySqlConnection
类轻松连接到数据库。我将使用MySqlConnectionStringBuilder
类(服务器,主机,用户等)的新实例中的属性来设置MySqlConnection
类。
如果连接不起作用,我会向用户返回信息,他们可以更新连接字符串。
一旦我成功连接到数据库,我就会使用我Database
实例的MySqlConnectionStringBuilder
属性中的数据库名来构建上面的查询。
如果命令返回NULL,则数据库不存在,然后需要创建,如果数据库确实存在,则该命令将返回数据库的名称。
现在有两条路径: