Cześć.
Robię poprawki do aplikacji która wcześniej działała bez zarzutu i zwracała rekordy idealnie. Żadnego problemu nie było.
Mam taki problem. Zdarza się np że mam 3 rekordy ze statusem N a zwraca mi 2 . I tak dalej. po prostu nie zwraca mi często tych samych ilości rekordów co mam w bazie.
Często w między czasie pracuję na aplikacji która działa na produkcji. I zauważyłem zależność że np zlecenie np 724xxx którego nie widzę u siebie na aplikacji testowej to zlecenie w które już wchodziłem chwilę wcześniej na produkcji aby je obejrzeć "co w sobie kryje" bo niestety pracować trzeba.
Po wejściu do aplikacji uruchamiana jest dana metoda i to ona odpowiada za połączenie się ze zleceniami.
public void Read_Main()
{
try
{
using (OracleConnection conn = new OracleConnection(Connection.oradb))
using (OracleCommand cmd = new OracleCommand("SELECT VBELN as ZLECENIE,KUNNR as ODBIORCA,DATA_ZLEC as DATA,UZEIT_ZLEC as GODZINA,MAIL_UTWORZYL as UTWORZYŁ,MAIL_PH as PH, STATUS as ST,WARTOSC_N AS WARTOSC FROM DWS1.AUTOMAT_NGL_POZ", conn))
{
if (conn.State == ConnectionState.Closed)
{
conn.Open();
using (OracleDataReader reader = cmd.ExecuteReader())
{
reader.Read();
DataTable dataTable = new DataTable();
dataTable.Load(reader);
List<DataRow> zleceniaNowe = dataTable.AsEnumerable().Where(x => x.Field<string>("ST") == "N").ToList();
foreach (var item in zleceniaNowe)
{
Automation_Positive_Cena_2(conn, item["ZLECENIE"].ToString(), item["ODBIORCA"].ToString(), item["UTWORZYŁ"].ToString(), item["PH"].ToString());
}
dataGridView1.DataSource = dataTable;
dataGridView1.RowHeadersVisible = false;
dataGridView2.Hide();
label3.Show();
dataGridView2.DataSource = "";
negativetbox.Clear();
}
conn.Close();
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}