Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

asp.net

Problema com random

Recommended Posts

O código abaixo funciona normal na minha máquina

 

<%@ import NameSpace="System.Data"%>

<%@ Import NameSpace="System"%>

<%@ Import NameSpace="System.web"%>

<%@ Import NameSpace="System.Random"%>

 

Sub gera_numero()

dim dt_opcionais as DataTable

Dim veiculo as New Executa_busca()

Dim sql_codigo as String

Dim codigo, i as Integer

dim rnd as New random()

'O erro é aqui

'Problema ao se fazer referencia ao objeto Random()

'Inserindo os valores para o randon dentro do array

':::::::::::::::::::::::::::::::::::::::::::::::::::

sql_codigo = "Select codigo from usado"

dt_opcionais = veiculo.executa_busca_datatable(sql_codigo)

t = dt_opcionais.rows.count

if t <> 0 then

codigo = dt_opcionais.rows.count - 1

if codigo = 0 then

id_random = dt_opcionais.rows(0)("codigo").tostring

else

Dim array_codigo(codigo) as String

for i=0 to codigo

array_codigo(i) = dt_opcionais.rows(i)("codigo").tostring

next

id_random = array_codigo(Cint(rnd.next(1,codigo)))

end if

end if

end Sub

 

Para gerar um elemento aleatório do Select, e no meu computador funciona tranquilo, mas quando mando para a net obtenho o seguinte erro.

 

Server Error in '/' Application.

Object reference not set to an instance of an object.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

 

Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.

 

Source Error:

 

The source code that generated this unhandled exception can only be shown when compiled in debug mode. To enable this, please follow one of the below steps, then request the URL:

 

1. Add a "Debug=true" directive at the top of the file that generated the error. Example:

 

<%@ Page Language="C#" Debug="true" %>

 

or:

 

2) Add the following section to the configuration file of your application:

 

<configuration>

<system.web>

<compilation debug="true"/>

</system.web>

</configuration>

 

Note that this second technique will cause all files within a given application to be compiled in debug mode. The first technique will cause only that particular file to be compiled in debug mode.

 

Important: Running applications in debug mode does incur a memory/performance overhead. You should make sure that an application has debugging disabled before deploying into production scenario.

 

Stack Trace:

 

[NullReferenceException: Object reference not set to an instance of an object.]

ASP.index_aspx.gera_numero()

ASP.index_aspx.page_load(Object Obj, EventArgs e)

System.Web.UI.Control.OnLoad(EventArgs e) +67

System.Web.UI.Control.LoadRecursive() +35

System.Web.UI.Page.ProcessRequestMain() +750

 

 

Version Information: Microsoft .NET Framework Version:1.1.4322.2300; ASP.NET Version:1.1.4322.2300

Compartilhar este post


Link para o post
Compartilhar em outros sites

você declarou o random como rnd e está usando como id_random??falows

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não, id_random seria o uma string que vai receber o resultado do random

 

id_random = array_codigo(Cint(rnd.next(1,codigo)))

Compartilhar este post


Link para o post
Compartilhar em outros sites

você sabe a linha exata q está dando erro?falows

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara já resolvi, ficou assim

 

 

 

Dim array_codigo() as String

sql_codigo = "Select codigo from usado"

dt_opcionais = veiculo.executa_busca_datatable(sql_codigo) 'Função em arquivo VB para executar o comando e retornar um objeto DataTable

t = dt_opcionais.rows.count

if t <> 0 then 'Verificando se foi retornado algum registro

codigo = dt_opcionais.rows.count - 1

if codigo = 0 then

id_random = dt_opcionais.rows(0)("codigo").tostring

else

redim array_codigo(codigo)

for i=0 to codigo 'Fazendo o Loop pelos registro retornados

array_codigo(i) = dt_opcionais.rows(i)("codigo").tostring

next i

end if

id_random = array_codigo(Cint(rnd.next(0,array_codigo.length))) 'Gerando o indice randomico para p array

end if

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.