Wesołych Świąt!
Mam kilka "if'ów", które łączą się z nadrzędnym (ifem) do jednej bazy i za pomocą innych zapytań do innej bazy. Czy możliwym jest taka konstrukcja by połączenia, warunkowość i zapytania nie wchodziły z sobą w konflikt?
- Według założenia pierwszy if sprawdza czy pola tekstowe są puste.
- Else od tego if'a wykonuje if'y podrzędne.
- Poprzez zapytanie zawarte pod np using (cmd2) {i kolejne} if podrzędny ma sprawdzić czy wynik zapytania SELECT będzie inny niż zawartość TextBox12, a jeśli będzie inny to by inną zawartość zapisywał do BD "logi"
- Identyczność wyniku zapytania z zawartością pola tekstowego przejawiać ma się w braku jakiejkolwiek reakcji
Coś jednak nie działa i w BD (zamiast zapisu tylko "różnych niż") zapisują się wszystkie dane wprowadzone w pola tekstowe i dropDownList.
Czy to z powodu zagęszczenia ifów? Czy może z użycia innego zapytania do każdego z ifów (taka deklaracja jest w ogóle możliwa?)?
protected void Button1_Click(object sender, EventArgs e)
{
string sText1 = DropDownList1.SelectedItem.Text;
string sText2 = DropDownList2.SelectedItem.Text;
string sText3 = DropDownList3.SelectedItem.Text;
string sText4 = DropDownList4.SelectedItem.Text;
string SID = sText4;
string connection_string1 = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\projekty.accdb";
string connection_string2 = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\logi.accdb";
OleDbConnection con1 = new OleDbConnection(connection_string1);
OleDbConnection con2 = new OleDbConnection(connection_string2);
string weryfikacja_zawartosci_nazwa_projektu = "SELECT Nazwa_projektu FROM projects WHERE " +
"Nazwa_projektu = " + DropDownList4.SelectedItem.Text + "";
string weryfikacja_zawartosci_wlasciciel = "SELECT Wlasciciel FROM projects WHERE " +
"Nazwa_projektu = " + DropDownList4.SelectedItem.Text + "";
string weryfikacja_zawartosci_data_rozpoczecia = "SELECT Data_rozpoczecia FROM projects WHERE " +
"Nazwa_projektu = " + DropDownList4.SelectedItem.Text + "";
string zapytanie1 = "UPDATE projects " +
"SET Nazwa_projektu = @Nazwa_projektu, Wlasciciel = @Wlasciciel, Data_rozpoczecia = @Data_rozpoczecia, " +
"Data_zakonczenia = @Data_zakonczenia, Cel_projektu = @Cel_projektu, Project_manager = @Project_manager, " +
"Team_manager = @Team_manager, Executive = @Executive WHERE Nazwa_projektu = @SID";
string zapytanie2 = "INSERT INTO historia_akcji (Czas_akcji, Nazwa_uzytkownika, Rodzaj_wartosci, Nowa_wartosc) values (@a,@b,@c,@d)";
OleDbCommand cmd1 = new OleDbCommand(zapytanie1, con1);
OleDbCommand cmd2 = new OleDbCommand(weryfikacja_zawartosci_nazwa_projektu, con1);
OleDbCommand cmd2a = new OleDbCommand(zapytanie2, con2);
OleDbCommand cmd3 = new OleDbCommand(weryfikacja_zawartosci_wlasciciel, con1);
OleDbCommand cmd3a = new OleDbCommand(zapytanie2, con2);
OleDbCommand cmd4 = new OleDbCommand(weryfikacja_zawartosci_data_rozpoczecia, con1);
OleDbCommand cmd4a = new OleDbCommand(zapytanie2, con2);
con1.Open();
con2.Open();
if (string.IsNullOrEmpty(sText1) || string.IsNullOrEmpty(sText2) || string.IsNullOrEmpty(sText3))
{
Label12.Text = "Dane wprowadzone niepoprawnie. Uzupełnij dane. Pola nie mogą być puste.";
}
else
{
using (cmd2)
{
if (weryfikacja_zawartosci_nazwa_projektu != TextBox12.Text)
{
using (cmd2a)
{
cmd2a.Parameters.AddWithValue("@a", DateTime.Now.ToString("yyyy/MM/dd, dddd, HH:mm:ss"));
cmd2a.Parameters.AddWithValue("@b", DropDownList1.SelectedItem.Text);
cmd2a.Parameters.AddWithValue("@c", "Nazwa_projektu");
cmd2a.Parameters.AddWithValue("@d", TextBox12.Text);
cmd2a.ExecuteNonQuery();
}
}
}
using (cmd3)
{
if (weryfikacja_zawartosci_wlasciciel != TextBox2.Text)
{
using (cmd3a)
{
cmd3a.Parameters.AddWithValue("@a", DateTime.Now.ToString("yyyy/MM/dd, dddd, HH:mm:ss"));
cmd3a.Parameters.AddWithValue("@b", DropDownList1.SelectedItem.Text);
cmd3a.Parameters.AddWithValue("@c", "Wlasciciel");
cmd3a.Parameters.AddWithValue("@d", TextBox2.Text);
cmd3a.ExecuteNonQuery();
}
}
}
using (cmd4)
{
if (weryfikacja_zawartosci_data_rozpoczecia != TextBox3.Text)
{
using (cmd4a)
{
cmd4a.Parameters.AddWithValue("@a", DateTime.Now.ToString("yyyy/MM/dd, dddd, HH:mm:ss"));
cmd4a.Parameters.AddWithValue("@b", DropDownList1.SelectedItem.Text);
cmd4a.Parameters.AddWithValue("@c", "Data_rozpoczecia");
cmd4a.Parameters.AddWithValue("@d", TextBox3.Text);
cmd4a.ExecuteNonQuery();
//con2.Close();
}
}
}
else {}