gpt4 book ai didi

c# MySqlConnector 查询和 FOUND_ROWS()

转载 作者:行者123 更新时间:2023-11-28 23:56:01 24 4
gpt4 key购买 nike

前言:我对 C# 的 MySqlConnector 和一般的 MySql 还很陌生。

我想实现的目标是执行一个查询,然后通过FOUND_ROWS获取SqlDataReader中返回的记录数。

这是我正在运行的代码:

    public MySqlDataReader Execute()
{
RecordCount = 0;

mCommand = new MySqlCommand("SELECT a,b,c FROM TABLE my_table where field_x=hello", connection);

MySqlCommand result_count_cmd = new MySqlCommand("Select FOUND_ROWS()", mCommand.Connection);



try
{
// create mysql command and execute it
mReader = mCommand.ExecuteReader();

// get the number of rows returned by the query
RecordCount = Convert.ToInt32(result_count_cmd.ExecuteScalar());

}
catch (Exception ex)
{
Console.WriteLine("Error Running Query: " + mCommand.CommandText);
Console.WriteLine(ex.ToString());
}

return mReader;

}

我面临的问题是,在尝试执行 FOUND_ROWS() 查询时,它没有告诉我无法在另一个非关闭读取器使用的同一连接上创建新的 DataReader。这对我来说听起来很公平,有什么方法可以检索查询返回的行数,而无需运行与 SELECT COUNT [...] 相同的查询作为不同的数据库操作?或者有没有办法在 DataReader 仍处于打开状态时调用 FOUND_ROWS 查询?

最佳答案

编辑:

 try
{
// create mysql command and execute it
mReader = mCommand.ExecuteReader();
int RecordCount=0;
while (mReader.Read())
{
///do what you want with the result
RecordCount++; //count number of rows returned
}
}

关于c# MySqlConnector 查询和 FOUND_ROWS(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31649833/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com