ENVIAR TIPO DATA PARA STORED PROCEDURE
Estou usando SQL SERVER como banco de dados.
Tenho uma tabela, chamada tblVendas com um campo tipo date, chamado dia.
Estou usando Stored Procedure, chamada INSERT_VENDA para gravar os dados da venda no banco de dados.
.
O problema é que não estou conseguindo gravar o valor da data no banco de dados.
Já tentei enviar no seguintes formatos: 'yyyy-mm-dd', 'yyyy/mm/dd', #yyyy-mm-dd#, #yyyy/mm/dd#, `yyyy-mm-dd`, `yyyy/mm/dd`, ´yyyy-mm-dd´.
.
Quando eu executo a Stored Procedure, usando aspas simples, dentro do SQL, ela funciona:
EXECUTE INSERT_VENDA '2024-10-14';
.
Quando envio pelo VB.NET, não funciona de jeito nenhum.
Exemplo:
Dim comandoSQL As SqlCommand
comandoSQL = New SqlCommand("INSERT_VENDA", conexaoSQL)
With comandoSQL
.CommandType = CommandType.StoredProcedure
.Parameters.AddWithValue("@dia", "'2024-10-14'")
If .ExecuteNonQuery = 0 Then
INSERT_VENDA_SQL = False
End If
End WIth
Sempre retorna a exceção: "Estouro de SqlDateTime. Deve estar entre 1/1/1753 12:00:00 AM e 31/12/9999 11:59:59 PM".
Tenho uma tabela, chamada tblVendas com um campo tipo date, chamado dia.
Estou usando Stored Procedure, chamada INSERT_VENDA para gravar os dados da venda no banco de dados.
.
O problema é que não estou conseguindo gravar o valor da data no banco de dados.
Já tentei enviar no seguintes formatos: 'yyyy-mm-dd', 'yyyy/mm/dd', #yyyy-mm-dd#, #yyyy/mm/dd#, `yyyy-mm-dd`, `yyyy/mm/dd`, ´yyyy-mm-dd´.
.
Quando eu executo a Stored Procedure, usando aspas simples, dentro do SQL, ela funciona:
EXECUTE INSERT_VENDA '2024-10-14';
.
Quando envio pelo VB.NET, não funciona de jeito nenhum.
Exemplo:
Dim comandoSQL As SqlCommand
comandoSQL = New SqlCommand("INSERT_VENDA", conexaoSQL)
With comandoSQL
.CommandType = CommandType.StoredProcedure
.Parameters.AddWithValue("@dia", "'2024-10-14'")
If .ExecuteNonQuery = 0 Then
INSERT_VENDA_SQL = False
End If
End WIth
Sempre retorna a exceção: "Estouro de SqlDateTime. Deve estar entre 1/1/1753 12:00:00 AM e 31/12/9999 11:59:59 PM".
Senhores,
Depois de bater cabeça, resolvi transformar as duas colunas (data (date) e hora (time)) em uma única coluna do tipo datetime.
Desse modo, consegui fazer o que eu queria:
Dim comandoSQL As SqlCommand
comandoSQL = New SqlCommand("INSERT_VENDA", conexaoSQL)
With comandoSQL
.CommandType = CommandType.StoredProcedure
...
.Parameters.Add("@dia", SqlDbType.DateTime).Value = DateTime.Parse(Now)
...
.ExecuteNonQuery()
.Dispose()
End With
Depois de bater cabeça, resolvi transformar as duas colunas (data (date) e hora (time)) em uma única coluna do tipo datetime.
Desse modo, consegui fazer o que eu queria:
Dim comandoSQL As SqlCommand
comandoSQL = New SqlCommand("INSERT_VENDA", conexaoSQL)
With comandoSQL
.CommandType = CommandType.StoredProcedure
...
.Parameters.Add("@dia", SqlDbType.DateTime).Value = DateTime.Parse(Now)
...
.ExecuteNonQuery()
.Dispose()
End With
Tópico encerrado , respostas não são mais permitidas