Visual Basic.NET - ayuda con Textbox y Store procedure

 
Vista:

ayuda con Textbox y Store procedure

Publicado por Jaime Bustamante A. (2 intervenciones) el 10/03/2011 00:04:47
Tengo en un formulario de Visual Studio 2005 tres controles textbox, uno señalo la fecha, en otro nombre de la caja y en el otro me tendria que aparecer el resultado de este store procedure, pero me sale el siguiente error, "[B]La conversión del tipo 'DBNull' en el tipo 'String' no es válida."[/B]alguien sabe como puedo solucionarlo?

aqui mi codigo del store procedure:

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go


ALTER PROCEDURE [dbo].[CHEQ_ALL_INC_GPO_ALI]
(
@Fecha AS VARCHAR(8),
@Caja AS VARCHAR(2) = NULL
)

AS

DECLARE @porc_cost AS NUMERIC(4,2)
SET @porc_cost = (SELECT TOP (1) costo_alimento FROM COSTOS.dbo.Porcentaje_Costos ORDER BY id DESC) / 100

SELECT codigo
INTO #Codigos
FROM TCADBHSB.dbo.hotcpv
WHERE (tipo = 11)
AND (codigo IN ('ALLGPO'))
-------------------------
SELECT caja
, fec_che
, tipo_negocio
, folio
INTO #Folios
FROM TCADBHSB.dbo.hotche
WHERE (departamento IN (SELECT codigo FROM #Codigos))
AND (fec_che = @Fecha)
AND (caja = ISNULL(@Caja, caja))
--------------------------
SELECT SUM((monto_total)/(1 + (impto / 100)) * @porc_cost) AS Monto
FROM TCADBHSB.dbo.hotcom
WHERE (folio IN (SELECT folio FROM #Folios))
AND (tipo = 'A')


DROP TABLE #Codigos
DROP TABLE #Folios




y aqui el codigo de Visual donde mando llamar el store procedure desde el evento de un boton:


Using cnn As SqlConnection = New SqlConnection("string")
cnn.Open()

Dim cmd As New SqlCommand("CHEQ_ALL_INC_GPO_ALI", cnn)
cmd.CommandType = CommandType.StoredProcedure

cmd.Parameters.AddWithValue("@Fecha ", TboxFecha.Text)
cmd.Parameters.AddWithValue("@Caja ", TboxCaja.Text)


'TboxResultado.Text = CStr(cmd.ExecuteScalar())

Dim monto As Object
monto = cmd.ExecuteScalar()
If monto IsNot Nothing Then
TboxResultado.Text = CStr(monto)

End If
End Using

espero me puedan ayudar
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

ayuda con Textbox y Store procedure

Publicado por Damian (824 intervenciones) el 11/03/2011 14:37:50
Tienes que asegurarte de cuando los datos son nulos, lo haces desde el store procedure, pero no desde visual. Entonces tendría que ser algo asi:

En una variable X guardas la forma en que puede venir el dato (vacio, texto,etc.) con una condicion:

Dim miStr As String = IIf(TboxCaja.Text.ToString = "null", " ", " " & TboxCaja.Text.ToString & " ")

Luego esa variable la pasas como parámetro y lo mismo con las demás que también tengas como posibles Null.
Espero te lo solucione.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar