在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;
}
答案 0 :(得分:3)
由于您使用COUNT(*)
,因此使用ExecuteScalar
会更好。
执行查询,返回第一行的第一列 查询返回的结果。
int _value = (int)_query1.ExecuteScalar();
还可以使用using
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();
}