Array
(
)

System.Exception - Visual Studio 2010

Gamal Ismail
   - 02 jan 2012

[Referência de objeto não definida para uma instância de um objeto.]
Erro em : System.Exception
Usando tando o Visual Basic 2008/2010 - ao fazer uma simples consulta no Banco Sql Server, para preencher dados
no TextBox e ComboBox retorna este erro.
Engraçado q se eu setar uma variável no lugar da TextBox, consigo receber o resultado da Consulta. E que parte da
Consulta retorna perfeitamente, em outros componentes como uma CheckBox.
Segue consulta usada.
Function Consulta_Usuario(ByVal ID_USU As Integer) As Boolean
Sql = SELECT * FROM TB_Cad_Usuario
Condicao = WHERE (ID_USU=1) AND (ID_EMP= & My.Settings.ID_EMPRESA & )
Sql &= Condicao
Try
Using SQLcon As New SqlConnection(My.Settings.MinhaConexao)
SQLcon.Open()
myCMD_I = New SqlCommand(Sql, SQLcon)
myReader = myCMD_I.ExecuteReader(32)
If myReader.HasRows Then
With myReader
While .Read()
strSql = .Item(0) ID_USU variável teste

cmb_Grup_Usu.SelectedValue = .Item(2)
cmb_ID_Agente.SelectedValue = .Item(3)
txt_ID.Text = .Item(0)
txt_Senha_Usu.Text = .Item(5)
txt_OBS.Text = .Item(7)
Ativo.Checked = .Item(8)
Exit While
End While
End With
End If
End Using
myCMD_I = Nothing : myReader.Close() : Return True
Catch ex As Exception
MsgBox(ex.Message)
Reporta_Erro(Consulta_Usuario, ex.Message)
End Try
myCMD_I = Nothing : myReader.Close() : Return Nothing
End Function
Fico mto agradecido se alguém poder me ajudar na solução.

Ricardo Mauro
   - 10 jan 2012

Mano,

Posta a exception toda para a gente ver.

Acho que o textbox não esta instanciado na sua página...

abcs.

Fabio Fim
|
MVP
Pontos: 600
    29 fev 2012

Cria uma classe retornando valor para propriedades
Public Function Ler_Unico_NomeTabela(ByVal campo1 As Integer)

Dim Cmd As New SqlCommand(nomeStore, Cnn)
Dim MeuDataReader As SqlDataReader

Cmd.CommandType = CommandType.StoredProcedure

Dim Parcampo1 As New SqlParameter(@campo1, campo1)
Cmd.Parameters.Add(Parcampo1)

Try
Cnn.Open()
MeuDataReader = Cmd.ExecuteReader()
While MeuDataReader.Read()

If Not IsDBNull(MeuDataReader!campo2) Then
mcampo2 = MeuDataReader!campo2
End If

If Not IsDBNull(MeuDataReader!campo3) Then
mcampo3 = MeuDataReader!campo3
End If

Return True
End While

Catch merro As System.Exception

msgerro = merro.ToString
MessageBox.Show(msgerro.ToString, , MessageBoxButtons.OK, MessageBoxIcon.Error)

Finally

Cnn.Close()

If Cnn.State = ConnectionState.Open Then
Cnn.Close()
End If

End Try

If Cnn.State.Open Then
Cnn.Close()
End If

End Function

Flávio Spina
   - 08 mar 2012

Estou com uma problema em minha aplicação.
Acontece o mesmo erro.
Segue o código para análise.

Imports System.Data.SqlClient

Partial Class Login
Inherits System.Web.UI.Page

Protected Sub btnLogin_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnLogin.Click
Dim strLogin As String = txtLogin.Text
Dim strSenha As String = txtSenha.Text
Dim gravando As New Classe
Dim MyDr As SqlDataReader

MyDr = gravando.VerificarLogin(strLogin, strSenha)

If MyDr.HasRows <> Then
Response.Redirect(Default.aspx)
Else
lblMensagemLogin.Text = Usuário e/ou senha inválidos. Por favor tente novamente.
End If
End Sub

End Class

Imports Microsoft.VisualBasic
Imports System.Data.SqlClient

Public Class Classe
Private UsuariosConnectionString As String
Dim cnn As SqlConnection
Dim cmd As SqlCommand
Dim strSql As String
Dim gravou As Boolean
Dim MyDr As SqlDataReader

Public Sub New()
UsuariosConnectionString = Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\Spina\Documents\Visual Studio 2010\WebSites\neliobizzo\App_Data\Dados.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True
End Sub

Public Function CadastrarUsuario(ByVal strNome As String, ByVal strSobrenome As String, ByVal strEmail As String, _
ByVal strEscola As String, ByVal strDisciplina As String, ByVal strTipo As String, _
ByVal strLogin As String, ByVal strSenha As String) As Boolean

cnn = New SqlConnection(UsuariosConnectionString)
cmd = New SqlCommand(CadastrarUsuario, cnn)
cmd.CommandType = Data.CommandType.StoredProcedure

Try
cnn.Open()
With cmd.Parameters
.Clear()
.Add(New SqlParameter(@nome, Data.SqlDbType.NVarChar, 20)).Value = strNome
.Add(New SqlParameter(@sobrenome, Data.SqlDbType.NVarChar, 20)).Value = strSobrenome
.Add(New SqlParameter(@email, Data.SqlDbType.NVarChar, 100)).Value = strEmail
.Add(New SqlParameter(@escola, Data.SqlDbType.NVarChar, 50)).Value = strEscola
.Add(New SqlParameter(@disciplina, Data.SqlDbType.NVarChar, 20)).Value = strDisciplina
.Add(New SqlParameter(@tipo, Data.SqlDbType.NVarChar, 20)).Value = strTipo
.Add(New SqlParameter(@login, Data.SqlDbType.NVarChar, 20)).Value = strLogin
.Add(New SqlParameter(@senha, Data.SqlDbType.NVarChar, 20)).Value = strSenha

End With
cmd.ExecuteNonQuery()
Return gravou
Catch ex As Exception
cnn.Close()
End Try

End Function

Public Function VerificarLogin(ByVal strLogin As String, ByVal strSenha As String)
cnn = New SqlConnection(UsuariosConnectionString)
strSql = Select Codigo from Usuario where login= & strLogin & and senha= & strSenha
cmd = New SqlCommand(strSql, cnn)
cmd.CommandType = Data.CommandType.Text

Try
cnn.Open()
cmd.ExecuteNonQuery()
MyDr = cmd.ExecuteReader(Data.CommandBehavior.CloseConnection)

Catch ex As Exception

End Try
Return MyDr

End Function
End Class

Espero que alguém consiga decifrar este erro.

Valeu galera.

Flávio Spina