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
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
0