Inquiridor
dúvida para concatenar sql

Pergunta
-
Olá pessoal, na rotina abaixo, estou tentando gravar DTPAGTO como NULL se dto.Dtpagto for branco, senão grava em DTPAGTO uma data válida.
Estou cancatenando para criar a rotina, mas não consigo colocar uma decisão no caso de DTPAGO, qual a maneira correta de criar essa sql ?
string comando = "UPDATE LANDESPESAS set CODDESP = '" + dto.Coddesp +
"'," + "DATA = '" + dto.Data +
"'," + "VENCIMENTO = '" + dto.Vencimento +
if (dto.Dtpagto != "")
{
comando = comando + "'," + "DTPAGTO = '" + dto.Dtpagto +
}
else
{
comando = comando + "'," + "DTPAGTO = NULL'" + "'" +
}
"' where ID = " + dto.Id;
bd.ExecutarComandoSQL(comando);C#, windowsForm, MySQL
Todas as Respostas
-
Porter Porter,
Posso estar enganado, mas uma variável Date nunca fica nula a não ser que você coloque uma "?" (C#) ou "As Nullable(Of " (VB.Net) interrogação na declaração.
Quando a variável é criada ela automaticamente assume o valor:
"#1/1/0001 12:00:00 AM#"
Será isso considerado "nulo" (entre aspas)?
Veja mais em:
=====================================
DateTime “null” value
DateTime? MyNullableDate;
https://stackoverflow.com/questions/221732/datetime-null-value
=====================================
VB .NET - Nothing , Null (DBNull.Value) e Nullabe Types
VB.NET:
Dim dataNascimento As Nullable(Of DateTime)
C#:
DataTime? dataNascimento = null;
http://macoratti.net/10/04/vbn_nult.htm
=====================================
[]'s,
Fabio I.- Editado Fabio I terça-feira, 7 de janeiro de 2020 18:22
-
-
Porter Porter,
Você tem que passar "DBNull" para o campo...
... ou "vazio" ("") ... detalhe: São coisas diferentes.
=======================================
DBNull.Value Campo
https://docs.microsoft.com/pt-br/dotnet/api/system.dbnull.value?view=netframework-4.8
=======================================
DBNull - SQL Server - Fórum iMasters
https://forum.imasters.com.br/topic/423481-dbnull/
=======================================
Inserting a DBNull value into a database
public static object PriceOrDefault(this ItemsType items) { return items.Price == null ? DBNull.Value : (object)items.Price; }
new SqlParameter("@Price", items.Price ?? SqlDecimal.Null),
https://codereview.stackexchange.com/questions/143759/inserting-a-dbnull-value-into-a-database
=======================================
[]'s,
Fabio I.- Editado Fabio I terça-feira, 7 de janeiro de 2020 19:06