为什么要在NpgsqlDataAdapter上使用NpgsqlCommand?
NpgsqlCommand的用法,使用阅读器
var _command = new NpgsqlCommand();
var _reader = _command.ExecuteReader();
...
while (_reader.Read())
{
...
NpgsqlDataAdapter的用法,使用数据集
IDbDataAdapter dbDataAdapter = new NpgsqlDataAdapter();
dbDataAdapter.SelectCommand = selectCommand;
...
dbDataAdapter.Fill (dataSet);
Basic的用法未提及DataAdapter。NpgsqlCommand和阅读器是否更有效,应该是首选?
NpgsqlCommand是更底层的API-您负责提供原始SQL,还负责通过NpgsqlDataReader读取结果集。 DataAdapter / DataTable是位于其上方的一层;它有一些缺点(例如,结果集缓存在内存中),通常被认为有些过时/遗留。如果您要发送的是SQL并回读结果,请考虑使用NpgsqlCommand,除非有充分的理由使用NpgsqlAdapter。