在C#工作,我在一个函数上遇到了麻烦。函数运行一个查询,该查询应该返回一个整数值,但我很难返回它。我经常会犯这样的错误:
不知道如何用C#和OleDbDataReader来完成这个任务。我的代码在下面
public static int FifthQuery()
{
int _value = 0;
OleDbConnection _connectMe = Utilities.OledbConnect();
OleDbCommand _query1 = new OleDbCommand();
_query1.Connection = _connectMe;
_query1.CommandText = "SELECT count(*) FROM GIS.PERSONS where Name_Prefix = 'Dr.'";
OleDbDataReader _reader = _query1.ExecuteReader();
_reader.Read();
//_value = Convert.ToInt32(_reader);
_value = _reader.GetInt32(0);
return _value;
}发布于 2014-05-06 19:13:13
既然您使用COUNT(*),那么使用ExecuteScalar将是更好的方法。
执行查询,返回查询返回的结果集中第一行的第一列。
int _value = (int)_query1.ExecuteScalar();还可以使用 statement来释放OleDbConnection和OleDbCommand。
using(OleDbConnection _connectMe = Utilities.OledbConnect())
using(OleDbCommand _query1 = _connectMe.CreateCommand())
{
_query1.CommandText = "SELECT count(*) FROM GIS.PERSONS where Name_Prefix = 'Dr.'";
_connectMe.Open();
int _value = (int)_query1.ExecuteScalar();
}https://stackoverflow.com/questions/23503018
复制相似问题