Usuário com melhor resposta
System.InvalidOperationException was unhandled

Pergunta
-
Pessoal, boa tarde. Estou com essa exception, estava tudo normal e apareceu a poucas horas:
System.InvalidOperationException was unhandled Message="Erro ao criar o formulário. Consulte Exception.InnerException para obter detalhes. O erro é: Referência de objeto não definida para uma instância de um objeto." Source="Produtos" StackTrace: em Produtos.My.MyProject.MyForms.Create__Instance__[T](T Instance) na 17d14f5c-a337-4978-8281-53493378c1071.vb:linha 190 em Produtos.My.MyProject.MyForms.get_Produtos() em Produtos.My.MyApplication.OnCreateMainForm() na C:\Documents and Settings\Meus documentos\VB Projetos\Produtos\Produtos\My Project\Application.Designer.vb:linha 35 em Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun() em Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel() em Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine) em Produtos.My.MyApplication.Main(String[] Args) na 17d14f5c-a337-4978-8281-53493378c1071.vb:linha 81 em System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args) em System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args) em Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() em System.Threading.ThreadHelper.ThreadStart_Context(Object state) em System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) em System.Threading.ThreadHelper.ThreadStart() InnerException: System.NullReferenceException Message="Referência de objeto não definida para uma instância de um objeto." Source="Produtos" StackTrace: em Produtos.Produtos..ctor() na C:\Documents and Settings\Meus documentos\VB Projetos\Produtos\Produtos\Produtos.vb:linha 7 InnerException:
- Editado Marques Junior terça-feira, 5 de maio de 2015 18:55
Respostas
-
Então, encontrei onde estava o problema:
Tinha criado uma variável pública sConnectionString dentro da class Produto:
Public Class Produtos 'Define a conexão com o banco de dados SQLite Public sConnectionString As String = "Data Source=" & TxbBanco.Text & ";Version=3;New=True;Compress=True;" 'Conecta banco de dados SQLite Private Sub BtnConectar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnConectar.Click End Sub End Class
Para resolver o problema eu tive que jogar sConnectionString dentro do evento Click do botão conectar:
Public Class Produtos 'Conecta banco de dados SQLite Private Sub BtnConectar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnConectar.Click 'Define a conexão com o banco de dados SQLite Dim sConnectionString As String = Nothing sConnectionString = "Data Source=" & TxbBanco.Text & ";Version=3;New=True;Compress=True;" End Sub End Class
Porém gostaria de acessar sConnectionString de outras parte do código e não estou acertando onde criar.
- Sugerido como Resposta Eduardo.RomeroModerator quarta-feira, 6 de maio de 2015 14:43
- Marcado como Resposta Eduardo.RomeroModerator quarta-feira, 6 de maio de 2015 14:43
-
Acabei fazendo na correria, peço desculpas.
Tente o seguinte:
Public Class Produtos Public Shared sConnectionString As String 'Conecta banco de dados SQLite Private Sub BtnConectar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnConectar.Click 'Define a conexão com o banco de dados SQLite sConnectionString = "Data Source=" & TxbBanco.Text & ";Version=3;New=True;Compress=True;" End Sub End Class
- Marcado como Resposta Marques Junior quarta-feira, 6 de maio de 2015 16:26
Todas as Respostas
-
É possível que seu método get_Produtos não esteja retornando nenhum dado (uma lista vazia) ou aconteça algum erro na tentativa de acesso a uma tabela de Produtos.
Tente debugar o código e analisar melhor o que está acontecendo utilizando a função Step Into (tecla F11).
-
-
Então, encontrei onde estava o problema:
Tinha criado uma variável pública sConnectionString dentro da class Produto:
Public Class Produtos 'Define a conexão com o banco de dados SQLite Public sConnectionString As String = "Data Source=" & TxbBanco.Text & ";Version=3;New=True;Compress=True;" 'Conecta banco de dados SQLite Private Sub BtnConectar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnConectar.Click End Sub End Class
Para resolver o problema eu tive que jogar sConnectionString dentro do evento Click do botão conectar:
Public Class Produtos 'Conecta banco de dados SQLite Private Sub BtnConectar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnConectar.Click 'Define a conexão com o banco de dados SQLite Dim sConnectionString As String = Nothing sConnectionString = "Data Source=" & TxbBanco.Text & ";Version=3;New=True;Compress=True;" End Sub End Class
Porém gostaria de acessar sConnectionString de outras parte do código e não estou acertando onde criar.
- Sugerido como Resposta Eduardo.RomeroModerator quarta-feira, 6 de maio de 2015 14:43
- Marcado como Resposta Eduardo.RomeroModerator quarta-feira, 6 de maio de 2015 14:43
-
Marques,
Altere sua classe Produtos para que a propriedade que sConnectionString fique como Shared (assim outros tipos poderão acessar este valor, sem que se precise instanciar a classe produto):
Public Class Produtos 'Define a conexão com o banco de dados SQLite Public Shared sConnectionString As String = "Data Source=" & TxbBanco.Text & ";Version=3;New=True;Compress=True;" 'Conecta banco de dados SQLite Private Sub BtnConectar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnConectar.Click End Sub End Class
-
-
Acabei fazendo na correria, peço desculpas.
Tente o seguinte:
Public Class Produtos Public Shared sConnectionString As String 'Conecta banco de dados SQLite Private Sub BtnConectar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnConectar.Click 'Define a conexão com o banco de dados SQLite sConnectionString = "Data Source=" & TxbBanco.Text & ";Version=3;New=True;Compress=True;" End Sub End Class
- Marcado como Resposta Marques Junior quarta-feira, 6 de maio de 2015 16:26
-