我正在用C#编写一个简单的控制台应用程序,使用顶级语句,我想在开始时检查是否存在数据库。下面是我的代码:
using MySql.Data.MySqlClient;
using (MySqlConnection connection = new MySqlConnection("Server=localhost;Uid=root;Pwd=password;"))
{
connection.Open();
if (CheckDatabaseExistence(connection)) Console.WriteLine("Database Exists.");
}
bool CheckDatabaseExistence(MySqlConnection connection)
{
MySqlCommand myCommand = connection.CreateCommand();
myCommand.CommandText = "SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA" +
"WHERE SCHEMA_NAME LIKE 'database_name';";
return Convert.ToInt32(myCommand.ExecuteScalar()) == 1;
}
执行此代码后,我得到以下错误消息:
MySql.Data.MySqlClient.MySqlException:'SQL语法中有错误;请查看与您的MySQL服务器版本对应的手册,以了解在“LIKE”sql_store“"第1行”附近使用的正确语法
用于检查数据库是否存在的SQL查询语法来自MySQL Documentation, Section 24.3.22
SELECT SCHEMA_NAME AS `Database`
FROM INFORMATION_SCHEMA.SCHEMATA
[WHERE SCHEMA_NAME LIKE 'wild']
我曾尝试将LIKE
替换为=
,但得到相同的错误。
2条答案
按热度按时间a6b3iqyw1#
您的命令是
SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATAWHERE SCHEMA_NAME LIKE 'database_name';
,它清楚地表明您的SCHEMATAWHERE
之间应该有一个空格,因此正确的命令是SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME LIKE 'database_name';
另外,请在配置文件中定义连接字符串。
并且您正在针对整数1检查返回值。所以我认为您在这里犯了错误。您需要将其与您的数据库名称进行比较。
有一个简单的命令可以检查相同的
SHOW DATABASES LIKE 'database_name';
flvtvl502#
要使用
Console App
检查MySQL中是否存在数据库,请尝试以下操作:建立
Console App
VS 2022年:
开放VS 2022
单击x1c 0d1x
点击文件
选择新建
选择项目
对于筛选器,请选择:

选择控制台应用程序
单击下一步
输入所需的项目名称(例如:DatabaseMySqlTest)并选择所需的位置。
单击下一步
对于框架,请选择**.NET 6.0(长期支持)**
点击创建
打开解决方案资源管理器:
在VS菜单中,单击View
选取方案总管
打开属性窗口
在VS菜单中,单击View
选择属性窗口
安装/下载NuGet软件包:
MySql.Data
在解决方案资源管理器中,展开〈project name〉
右键单击〈项目名称〉并选择管理NuGet包...
点击浏览选项卡
在搜索框中,键入:我的SQL数据库
滚动到顶部,然后选择MySql.Data
选择所需版本(例如:8.0.31),然后单击安装
如果出现提示 *Visual Studio即将对此解决方案进行更改。单击“确定”继续进行下面列出的更改... *,请单击确定
如果出现 * 许可证接受 * 提示,请单击相应的按钮。
选项1(应用程序配置文件)
将
Application Configuration File
添加到项目中(名称:应用程序配置)在VS菜单中,单击项目
选择添加新项目...
选择应用程序配置文件(名称:应用程序配置)
单击添加
应用程序配置:
添加类(名称:帮助程序MySql.cs)
帮助程序MySql.cs:
选项2
将
JavaScript JSON Configuration File
添加到项目中(名称:应用程序设置. json)应用程序设置.json:
设置文件属性:
安装/下载NuGet软件包:
Microsoft.Extensions.Configuration.Json
添加类(名称:帮助程序MySql.cs)
帮助程序MySql.cs:
程序.cs
资源: