automatyzacja kolumn i parametrów w zapytaniu sql

0

dzień dobry,
mam taki oto fragment DZIAŁAJĄCEGO kodu (aby skrócić, zostawię nazwę tylko 1 kolumny)

                        OleDbTransaction transaction = Form1.polaczenie.BeginTransaction();
                        OleDbCommand sql = new OleDbCommand("INSERT INTO Adresy " +
                        "(Adres_NR_Mieszkania) VALUES (" +
                        "@mieszka); ", Form1.polaczenie);

                        sql.Parameters.Add("@mieszka", OleDbType.VarChar, 255).Value = textmiesz.Text;

Zaszła potrzeba automatyzacji (nie wiadomo, ile będzie kolumn ;-) ) i zastanawiałem się jak to zrobić...
Rezultat:

OleDbTransaction transaction = Form1.polaczenie.BeginTransaction();
OleDbCommand sql = new OleDbCommand("INSERT INTO Adresy " +
                "(Data_Dodania" + sqlnazwykolumn +
                ") VALUES (@Data_D" + sqlnazwyparam + "); ", Form1.laczymysie);

sql.Parameters.Add("Data_O", OleDbType.VarChar, 255).Value = dataz;
sql.Parameters.Add(sqlnazwyparamtablica[j], OleDbType.VarChar, 255).Value = this.Controls["pole" + kategoriaapole[j]].Text;

W 2ch pętlach "for" dodaję do siebie wszystkie elementy 2 tablic zawierajcych nazwy kolumn i parametrów i otrzymuję 2 długie stringi

for (int i = 0; i < liczba; i++)
{
        temp = "@" + nazwy[i];
        sqlnazwyparam = sqlnazwyparam + ", " + temp;
}

Sprawdziłem jak wygląda toto polecenie poprzez MessageBox.Show(sql.CommandText);aby sprawdzić czy przecinki są dobrze itp ;-) i wygląda to dobrze, tak samo jak w poprzednim przypadku.
Problem dodawania nowej kolumny w tabeli z bazą danych pewnie rozwiążę jakoś tak (jeszcze nie doszedłem do momentu w którym będę musiał się temu przejrzeć)ALTER TABLE Adresy Add Nowa_Kolumna VARCHAR(255) NULL
Więc według mnie teraz kod powinien działać, a jednak wywala błąd:

+		$exception	{"Błąd składniowy (brak operatora) w wyrażeniu kwerendy '@Adres ulica'."}	System.Exception {System.Data.OleDb.OleDbException}

Pokornie proszę o pomoc

0

do stringa z nazwami parametrów przedostawały się polskie literki, naprawiłem to i szafa gra :-)

0

Skoro masz wplyw na strukture bazy, to nie rob takich koszmarkow. Dodaj raczej elegancko osobne tabele:

PARAMETR:
--
ID
NAZWA

PARAMETR_ADRES
--
ADRES_ID
PARAMETR_ID
WARTOSC

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