如何在C#中统计SQLite读取器返回的行数?

14

我在使用微软的Visual C# 2008 Express以及SQLite。

我正在使用类似于这样的查询语句查询我的数据库:

SQLiteCommand cmd = new SQLiteCommand(conn);

cmd.CommandText = "select id from myTable where word = '" + word + "';";
cmd.CommandType = CommandType.Text;
SQLiteDataReader reader = cmd.ExecuteReader();

然后我做了这样的事情:

if (reader.HasRows == true) {
    while (reader.Read()) {
        // I do stuff here
    }
}

我想做的是在执行"reader.Read()"之前计算行数,因为返回的数字会影响我想要/需要做的事情。 我知道我可以在while循环语句中添加计数器,但我真的需要在此之前知道计数。

有什么建议吗?


还可以在SQLite邮件列表上查看查询结果中的行数 - jww
11个回答

0
肯定获取行数更好的方法应该是这样的:-
 SQLiteDataReader reader = SendReturnSQLCommand(dbConnection, "SELECT COUNT(*) AS rec_count FROM table WHERE field = 'some_value';");
      if (reader.HasRows) {
         reader.Read();
        int  count = Convert.ToInt32(reader["rec_count"].ToString());

...

    }

那样的话你就不必迭代行了。

请问您能否解释一下SendReturnSQLCommand方法的内部实现? - Ricardo Araújo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接