【发布时间】:2016-12-14 23:24:17
【问题描述】:
所以我正在为一个大学项目创建一个消息传递应用程序,并且我在 Access 中有一个用户数据库,我已经正确链接了数据库并且可以执行语句,但我正在努力解决一个问题,如何计算其中的行数一个数据表。
其实我想做的就是统计用户总数,老师让我把数据放到DataTable中,然后统计行数。但是,无论我在数据库中有多少用户,它总是返回为 2。
int UserCount = 0;
using (OleDbConnection cuConn = new OleDbConnection())
{
cuConn.ConnectionString = @"DATASOURCE";
string statement = "SELECT COUNT(*) FROM Users";
OleDbDataAdapter da = new OleDbDataAdapter(statement, cuConn);
DataTable Results = new DataTable();
da.Fill(Results);
if (Results.Rows.Count > 0)
{
UserCount = int.Parse(Results.Rows[0][0].ToString());
}
}
上面的代码是我老师发给我的副本,老师说它可以工作。任何帮助将不胜感激。
另外,对不起,如果这是浪费时间,还在习惯这个 StackOverflow 的东西......
【问题讨论】:
-
虽然不是获取该信息的最佳方式,但此代码应该可以工作。除非...您确定您正在查看同一个数据库吗?你真正的连接字符串是什么?
-
你应该使用 DbCommand 或
SELECT * FROM Users然后你可以使用 DataTable.Rows.Count -
@mcNets 为什么要检索所有行数据只是为了对它们进行计数?查询是正确的,更好的方法是使用 ExecuteScalar 而不是 DataAdapter 所需的所有基础设施
-
是的,但随后使用 DbCommand 执行查询。
-
我指向了两者,一个 dbcommand 或 select *
标签: c# sql database oledb oledbconnection