oReader.Read()
читает первую строку результата.AppData.Load
также делает это, первая строка результата игнорируется.Чтобы исправить это, удалите блок if
, просто передайте считыватель напрямую.
Также используйте блоки using
при создании случаев, когда тип реализует IDisposable
.Это гарантирует, что ресурсы всегда освобождаются даже в случае исключения.
public DataTable exeReader(string cmd, OleDbParameter[] param)
{
using(OleDbConnection oConn = new OleDbConnection(connString))
{
DataTable AppData = new DataTable();
oConn.Open();
var oCmd = oConn.CreateCommand();
oCmd.CommandText = cmd;
try
{
using(var oReader = oCmd.ExecuteReader()) {
AppData.Load(oReader);
}
}
catch (Exception e)
{
MessageBox.Show(e.Message);
}
}
return AppData;
}