ADO .NET

0

Witam!
Pierwszy dzien z ADO.NET :)
I pierwszy problem, w modelu połączeniowym chcę dodać kolumnę cena_rabat do tabeli i następnie wypełnienie jej wartościami.
Są dwa problemy:
1)

[Kod C#]

cmd.CommandText = "ALTER TABLE ksiazka ADD cena_rabat float";

działa, tylko, że gdy ponownie uruchamiam program pojawiają się komunikaty, że kolumna już istnieje, zrozumiałe. Jak zrobić, aby dodawał tą kolumnę tylko i wyłącznie jeśli jeszcze nie została dodana wcześniej ?

  1. załóżmy, ze już jest ta kolumna. W tabeli jest x wierszy. Chcę wypełnić tą kolumnę wartościami.
[Kod C#]

DbDataReader dr = cmd.ExecuteReader();
(...)
string sCena = dr["cena"].ToString();
fOldPrice = float.Parse(sCena);
fOldPrice = fOldPrice - (fOldPrice * 0.07);
cmd.CommandText = "INSERT INTO ksiazka(cena_rabat) VALUES " + fOldPrice.ToString();

ale mam z tym problem, bo nie wiem w jaki sposób zrobić pętlę po każdym wierszu.
Jakakolwiek pomoc, bardzo potrzebna:)

0

działa, tylko, że gdy ponownie uruchamiam program pojawiają się komunikaty, że kolumna już istnieje, zrozumiałe. Jak zrobić, aby dodawał tą kolumnę tylko i wyłącznie jeśli jeszcze nie została dodana wcześniej ?

try 
{

}
except
{
  // Już istnieje?
}

DbDataReader dr = cmd.ExecuteReader();
(...)
string sCena = dr["cena"].ToString();
fOldPrice = float.Parse(sCena);
fOldPrice = fOldPrice - (fOldPrice * 0.07);
cmd.CommandText = "INSERT INTO ksiazka(cena_rabat) VALUES " + fOldPrice.ToString();

ale mam z tym problem, bo nie wiem w jaki sposób zrobić pętlę po każdym wierszu.
Jakakolwiek pomoc, bardzo potrzebna:)

while ( dr.Read() )
{

}
0

rozumiem ze dodawanie kolumny w bloku try,
a w except w sumie moge zrobic np wypelnienie domyslną wartoscią lub nic, tak?
wyjatki pominalem niestety przy nauce jezyka..

co do drugiego - źle sie wyrazilem, dr.Read() znam, ale to jest tylko do odczytu, a mi chodzilo o uaktualnianie, ale juz wszystko przemyslalem i w ogole lepiej nie kontynuowac tej czesci. nie przemyslalem po co mi odwolanie sie do np 5 wiersza

1 użytkowników online, w tym zalogowanych: 0, gości: 1