Il programma e suddiviso in questi Form:
Form1: il quale è un MdiContainer,
nel Form1 ho applicto un menu di tipo "ToolStrip" che mi premettera di Swiccare tra i Form Contenuti
Dentro al Form1:
FormTelefonate: contiene un motore di ricerca e una ListView dove elenca le telefonate fatte.
FormImpostazioni: si settano tutte le impostazioni del programma, e si aggiungono anche degli Item che poi si ritrovano nel motore di ricerca del "FromTelefonate".
Altri-Form ................
Nel Progetto ho una Classe "DbManager" nella quale è contenuto tutto il codice per "INSERIMENTI, MODIFICHE, ELIMINAZIONI, POPOLAZIONE-ListView" insomma tutte le Query,
come fanno queste query a sapere cosa Popolare o dove prendere i dati da modificare ???
Gli passo io l'Istanza dello strumento da controllare, cioè:
Su "DbManager":
codice:
public bool PopolaCamere(ListView obj)
{
if (m_oConn.State != ConnectionState.Open) return false;
DataSet oDataSet = new DataSet();
ListViewItem li;
OleDbDataAdapter oDataAdapter = new OleDbDataAdapter("SELECT " +
"camere.iID," +
"camere.sCamera," +
"tariffazioni.iID_Camera " +
"FROM camere " +
"LEFT JOIN tariffazioni ON (camere.iID = tariffazioni.iID_Camera) " +
"GROUP BY camere.iID, camere.sCamera, tariffazioni.iID_Camera " +
"ORDER BY camere.iID ASC;", m_oConn);
try
{
oDataAdapter.Fill(oDataSet, "camere");
}
catch
{
return false;
}
DataTable oDataTable = oDataSet.Tables["camere"];
obj.Items.Clear();
foreach (DataRow oDataRow in oDataTable.Rows)
{
li = obj.Items.Add(oDataRow["iID"].ToString());
li.SubItems.Add(oDataRow["sCamera"].ToString());
if (oDataRow.IsNull("iID_Camera"))
{
li.ForeColor = Color.Red;
}
else
{
li.ForeColor = Color.Black;
}
}
return true;
}
la chiamata dal "FormImpostazioni":
codice:
DbManager oDbManager = new DbManager();
if (!oDbManager.PopolaCamere(lvCamere))
{
MessageBox.Show("Si è verificato un errore durante il caricamento delle Camere.", "Errore!", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
"lvCamere" è la "ListView" contenente un elenco di camere.