Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MySQL(ADO.NET)提供';未选择任何数据库';确实选择了数据库时出错_C#_Mysql_Ado.net_Mysql.data - Fatal编程技术网

C# MySQL(ADO.NET)提供';未选择任何数据库';确实选择了数据库时出错

C# MySQL(ADO.NET)提供';未选择任何数据库';确实选择了数据库时出错,c#,mysql,ado.net,mysql.data,C#,Mysql,Ado.net,Mysql.data,使用ADO.NET和MySql连接器(MySql.Data)驱动程序,我打开了一个新的非池查询(连接字符串中没有指定初始目录/数据库),并发出以下查询: ALTER TABLE `public`.`table2` ADD CONSTRAINT `fk_table2_table1` FOREIGN KEY (`table1_id`) REFERENCES `table1` (`id`); 两个表的结构如下: CREATE TABLE `public`.`table1` ( id int

使用ADO.NET和MySql连接器(MySql.Data)驱动程序,我打开了一个新的非池查询(连接字符串中没有指定初始目录/数据库),并发出以下查询:

ALTER TABLE `public`.`table2` 
ADD CONSTRAINT `fk_table2_table1`
FOREIGN KEY (`table1_id`) REFERENCES `table1` (`id`);
两个表的结构如下:

CREATE TABLE `public`.`table1`
(
    id int primary key
);

CREATE TABLE `public`.`table2`
(
    id int primary key,
    table1_id int
);
ALTER TABLE查询导致以下异常:

MySql.Data.MySqlClient.MySqlException(0x80004005):未选择任何数据库

但是,使用相同的设置,如果使用mysql命令行工具(和其他几个mysql客户机)运行ALTER TABLE查询,则不会出现此类错误

有人对我可以研究的事情有什么建议吗。我目前认为这是MySql连接器(MySql.Data)驱动程序的一个问题,然而,我在这里很容易出错

更新:

我们无法用一个最低限度可行的复制品来复制这一点。问题很可能存在于我们自己的代码中,而不是驱动程序中

另一个更新: 事实上,我们仅使用mysql命令行工具就可以成功地重现这一点。它需要Mysql 5.6.34(在我测试的许多其他版本中,包括5.6.41,都不会重新编程)。此外,我们复制了AWS RDS,但不确定是否需要。要复制,请执行以下步骤:

1) 新数据库安装 2) 通过mysql命令行工具登录 3) 创建两个表

创建公共模式; 创建表public.table1(id int主键); 创建表public.table2(id int主键,table1_id int); 更改表
public
table2
添加外键
fk_name
table1_id
)参考
table1
id

最后一个命令导致错误:


错误1046(3D000):未选择任何数据库

请先检查连接字符串,但您尚未显示连接字符串,我们怎么能告诉您使用了此代码?如果这样做有效的话,几乎可以肯定这是Oracle的MySQL连接器/NET(即MySQL.Data)中的一个bug。您可以在上报告。我无法使用您提供的SQL语句再现MySql.Data的任何异常;你能提供更具体的代码来说明这个问题吗?请提供一个。首先检查你的连接字符串,但是你还没有显示你的连接字符串,我们怎么能告诉你用了这个代码?如果这样做有效的话,几乎可以肯定这是Oracle的MySQL连接器/NET(即MySQL.Data)中的一个bug。您可以在上报告。我无法使用您提供的SQL语句再现MySql.Data的任何异常;你能提供更具体的代码来说明这个问题吗?请提供一个。