我试图通过MySQL实例上的DataReader运行以下查询。读者总是返回null,我理解这是由于连接字符串中缺少Database参数。如何使此查询起作用。我需要数据库中的用户名,数据库名和主机名,但我不确定要查询哪个数据库。
select current_user(), database(), @@hostname hostname;
在以下函数中进行调用,并且连接并非特定于任何数据库:
public DatabaseDetails GetDetailsDetails(ConnectionDetails details)
{
using (var dbCommand = details.Connection.CreateCommand())
{
dbCommand.CommandText = "select current_user(), database(), @@hostname hostname;";
using (var dr = dbCommand.ExecuteReader(CommandBehavior.SingleRow))
{
return dr.Read()
? new DatabaseDetails
{
Username = DBFunction.GetString(dr, 0),
Database = DBFunction.GetString(dr, 1),
Server = DBFunction.GetString(dr, 2)
}
: null;
}
}
}
使用的连接字符串:
user id=root;password=***;data source=localhost;integrated security=false;auto enlist=true;
其他信息: 即使我将数据库名称放在查询中,我也无法从任何数据库表中获取前20条记录。 debug上的datareader显示行,但所有行都是"?"。例如,使用以下命令文本,我没有记录:
select * from db_sample.table_sample limit 20;
更新 当我在查询或连接字符串中提到数据库时,我已经按照自己的方式从表中提取数据。现在我只需要在不知道数据库(使用查询)的情况下从mySQL数据服务器获取以下内容: