Postgresql - problem z utworzeniem krotki ze stringiem

0

Cześć,
mam problem z tym kodem,

 NpgsqlCommand cmd = new NpgsqlCommand($"insert into magazyn values ({numberofitems}, {nameofitems},{priceofitems})", conn);
            


            cmd.ExecuteNonQuery();
 

Gdy podaje same liczby to rekord się tworzy, jednak gdy jako nazwa przedmiotu podam jakiegoś stringa to dostaje informację, że kolumna o nazwie stringa które wpisałem nie istnieje.

0

Spróbuj podać w zapytaniu nazwy kolumn.

2

Informacja, że "kolumna o nazwie stringa nie istnieje" sugeruje, że twoja klasa do parsowania parametrów jest zła i coś knoci. Dla postgreSQL-a parametrów stringowych nie powinna dawać w " (podwójny cudzysłów), tylko w ' (pojedynczy). Bo z opisu błędu wynika, że masz :

insert into magazyn values (15, "towar 1",20)

zamiast

insert into magazyn values (15, 'towar 1',20)
0

@Marcin.Miga: Dzięki wielkie, faktycznie tu był błąd, moje niedopatrzenie.

2

Uczysz się spoko.
Ale nigdy nie wprowadzaj parametrów na sile.
Widziałem apki komercyjne (za dzisiatki tysiecy zloty) gdzie w querry jest np: textbox2.Text D

Jeżeli chcesz by aplikacja wykazawala minimum odporności na błędy i bezpieczeństwo, parametry wprowadzaj
poprzez SqlCommand.Parameters.
Np:
command.Parameters.Add("@ID", SqlDbType.Int);
command.Parameters["@ID"].Value = customerID;

Nie wiem w ogóle czy bez takiego podejścia można wprowadzić nulla do instert'a (chcąc by określona kolumna miała wartość pusta);
Być może się da, nie wiem.

P

0

Widziałem apki komercyjne (za dzisiatki tysiecy zloty) gdzie w querry jest np: textbox2.Text D

Tak, a później ktoś inny takie apki musi utrzymywać i przerabiać wspaniały kod w ADO.NET z 30 parametrami.

Jak chcesz to zrobić prosto (co zwykle oznacza bezbłędnie), użyj dappera: https://github.com/StackExchange/Dapper
Nie jest to narzędzie dla lamusów, bo korzysta z niego cały StackOverflow.

0

A czy Dapper współpracuje z Postgresql ? Bo z tego co widziałem, to nie bardzo. Chyba, że się mylę.

0

Will Dapper work with my DB provider?

Dapper has no DB specific implementation details, it works across all .NET ADO providers including SQLite, SQL CE, Firebird, Oracle, MySQL, PostgreSQL and SQL Server.

https://github.com/StackExchange/Dapper

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