Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.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# SqlDataReader.HasRows始终返回“0”;“真的”;即使结果是空的_C#_Mysql_Asp.net_Mysqldatareader - Fatal编程技术网

C# SqlDataReader.HasRows始终返回“0”;“真的”;即使结果是空的

C# SqlDataReader.HasRows始终返回“0”;“真的”;即使结果是空的,c#,mysql,asp.net,mysqldatareader,C#,Mysql,Asp.net,Mysqldatareader,在浏览了大量关于SqlDataReader.HasRows现象的主题后,即使结果为空,也总是返回true(特别是当它是关于带有聚合的SQL查询时),我完全沉迷于代码 然而,我的示例非常简单,HasRows返回True,FieldCount返回1,即使没有phpMyAdmin边线 query=“从tlink\u bar\u beer中选择FK\u BarId,其中FK\u BeerId=“+sqlDataReader.GetInt32(0); MySqlConnection sqlConnexio

在浏览了大量关于
SqlDataReader.HasRows
现象的主题后,即使结果为空,也总是返回true(特别是当它是关于带有聚合的SQL查询时),我完全沉迷于代码

然而,我的示例非常简单,
HasRows
返回
True
FieldCount
返回
1
,即使没有phpMyAdmin边线

query=“从tlink\u bar\u beer中选择FK\u BarId,其中FK\u BeerId=“+sqlDataReader.GetInt32(0);
MySqlConnection sqlConnexionList=newmysqlconnection(“server=localhost;database=beerchecking;uid=root;password=;”;
MySqlCommand commandList=新的MySqlCommand(查询,sqlConnexionList);
sqlConnexionList.Open();
int[]巴西德;
使用(MySqlDataReader sqlDataReaderList=commandList.ExecuteReader())
{
if(sqlDataReaderList.HasRows)
{
尝试
{
BarsIds=newint[sqlDataReaderList.FieldCount];
int计数器=0;
if(sqlDataReaderList.Read())
{
while(sqlDataReaderList.Read())
{
int id=sqlDataReaderList.GetInt32(计数器);
BarsIds[计数器]=id;
计数器++;
}
}
}
最后
{
sqlDataReaderList.Close();
}
}
其他的
{
BarsIds=新整数[0];
}
}
sqlConnexionList.Close();
当phpMyAdmin结果中没有类似的行时,您知道如何获取HasRows false吗


谢谢阅读。

我更喜欢使用辅助数据表而不是数据阅读器,类似这样的:

DataTable dt = new DataTable();
dt.Load(commandList.ExecuteReader());

if(dt.Rows.Count > 0){

    //rows exists
}else{

    //no rows
}

直接使用SQL studio运行查询时会发生什么情况?我敢打赌它只返回一行。似乎有点不对劲。该查询是从
sqlDataReader
获取ID构造的,因此我假设该ID存在,因此您有行
FieldCount
返回列数,因为查询有一列
FK_BarId
所以总是得到1。