C# UPDATE do bazy w kolumnie z varchar jako NULL

0

Zna ktoś jakiś sposób, żeby przy pomocy kodu C# wysłać do UPDATE null. NULL ma być wstawiony jako prawdziwy SQL null, a nie jako string "NULL". Nie chodzi mi o użycie parametru i zrobienie tego przy pomocu DbNull.Value. Mam kod jak poniżej:

public static string _dane;
if(string.IsNullOrEmpty(textbox1.Text))
{
   _dane = null;
}
else
{
   _dane = textbox1.Text;
}

_dane jest następnie użyte w

command.CommandText = "UPDATE TABELA1 SET OPIS = '"+_dane+"'"; 

Oczywiście jakby było w tym UPDATE napisane OPIS = null to jest ok, a tak wstawiany do bazy jest pusty string. Pomoże ktoś ???

2

Oczywiście jakby było w tym UPDATE napisane OPIS = null to jest ok, a tak wstawiany do bazy jest pusty string. Pomoże ktoś ???

No tak, więc? :P

Pomijam cały temat sql injection itd., ale powinieneś się zainteresowac + polecam Dappera.

I w dużym uproszczeniu problem jest z tym że dajesz nulla w ""

if(string.IsNullOrEmpty(textbox1.Text))
{
	command.CommandText = "UPDATE TABELA1 SET OPIS = NULL"; 
}
else
{
	command.CommandText = "UPDATE TABELA1 SET OPIS = '"+_dane+"'"; 
}

albo to samo w inny sposób, ale nadal takie łączenie stringów jest bardzo złym pomysłem.

ms docs

stack

jakis blog

2

Użyj commanda z parameterami, wtedy nie będziesz miał takich problemów.

1
somekind napisał(a):

Użyj commanda z parameterami, wtedy nie będziesz miał takich problemów.

W sumie racja. Tak właśnie zrobiłem. Dzięki.

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