none
ExecuteNonQuery: Propriedade Connection não foi inicializada. Onde eu errei ? e como corrigir. RRS feed

  • Discussão Geral

  • Galera sou novato no visual.  Esse progama pega txt e joga para banco de dados access.

    Imports System.Data.OleDb
    Imports System
    Imports System.IO
    Imports System.Data
    Imports System.Collections



    Module GlobalVariables
        Public sLine As String = ""
        Public arrText As New ArrayList()
    End Module



    Public Class Form1
        Dim cnn As New OleDb.OleDbConnection
        'Private Sub OpenFileDialog1_FileOk(sender As Object, e As System.ComponentModel.CancelEventArgs)

        'End Sub

        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

            OpenFileDialog1.Title = "Arquivo Inválido"

            OpenFileDialog1.InitialDirectory = "C:temp"

            OpenFileDialog1.ShowDialog()

        End Sub

        Private Sub OpenFileDialog1_FileOk(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles OpenFileDialog1.FileOk

            Dim strm As System.IO.Stream

            strm = OpenFileDialog1.OpenFile()


            TextBox1.Text = OpenFileDialog1.FileName.ToString()


            If Not (strm Is Nothing) Then


                'insert code to read the file data

                'strm.Close()

                'MessageBox.Show("file close")


            End If

        End Sub

        Public Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
            Dim cmd As New OleDb.OleDbCommand
            Dim conn As New OleDbConnection
            Dim sSQL As String = String.Empty

            conn = New OleDbConnection(Get_Constring)
            conn.Open()
            cmd.Connection = cnn
            cmd.Connection = conn
            cmd.CommandType = CommandType.Text

            Dim objReader As New StreamReader(TextBox1.Text)
            Try
                Do
                    sLine = objReader.ReadLine()
                    If Not sLine Is Nothing Then
                        arrText.Add(sLine)
                    End If
                Loop Until sLine Is Nothing
                objReader.Close()

                For Each sLine In arrText

                    Dim tp_reg As String = Mid(sLine, 4, 1)  ' tipo de registro

                    Select Case tp_reg
                        Case "0"
                            formata_reg_0000()
                        Case "1"

                        Case "35"

                        Case "100"

                        Case Else

                    End Select


                Next
                Console.ReadLine()
            Catch ex As Exception
                MsgBox(ErrorToString)
            Finally
                conn.Close()
            End Try
        End Sub

        Private Sub SaveFileDialog1_FileOk(sender As Object, e As ComponentModel.CancelEventArgs) Handles SaveFileDialog1.FileOk

        End Sub

        Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged

        End Sub

        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

        End Sub

        Public Sub formata_reg_0000()
            Dim sSQL As String = String.Empty
            Dim cmd As New OleDbCommand
            Dim words As String() = sLine.Split(New Char() {"|"c})
            Dim word As String

            Dim i As Integer = 0

            For Each word In words
                Select Case i
                    Case "0"

                    Case "1"
                        sSQL = "INSERT INTO ECF_C_0000 (CNPJ_CLI,"
                    Case "2"
                        sSQL = sSQL & "TIP_REG,"
                    Case "3"
                        sSQL = sSQL & "COD_VER,"
                    Case "4"
                        sSQL = sSQL & "TIPO_ESCRIT,"
                    Case "5"
                        sSQL = sSQL & "IND_SIT_ESP,"
                    Case "6"
                        sSQL = sSQL & "NUM_REC_ANTERIOR,"
                    Case "7"
                        sSQL = sSQL & "DT_INI,"
                    Case "8"
                        sSQL = sSQL & "DT_FIN,"
                    Case "9"
                        sSQL = sSQL & "NOME,"
                    Case "10"
                        sSQL = sSQL & "CNPJ,"
                    Case "11"
                        sSQL = sSQL & "UF,"
                    Case "12"
                        sSQL = sSQL & "COD_MUN,"
                    Case "13"
                        sSQL = sSQL & "SUFRAMA,"
                    Case "14"
                        sSQL = sSQL & "IND_NAT_PJ,"
                    Case "15"
                        sSQL = sSQL & "IND_ATIV)"
                    Case Else

                End Select

                i += 1

            Next

            i = 0
            For Each word In words
                Select Case i
                    Case "0"

                    Case "1"
                        sSQL = sSQL & "VALUES(@CNPJ_CLI,"
                        cmd.Parameters.Add("@CNPJ_CLI", OleDbType.Numeric).Value = IIf(Len(Trim(word)) > 0, word, DBNull.Value)
                    Case "2"
                        sSQL = sSQL & "@TIP_REG,"
                        cmd.Parameters.Add("@TIP_REG", OleDbType.Numeric).Value = IIf(Len(Trim(word)) > 0, word, DBNull.Value)
                    Case "3"
                        sSQL = sSQL & "@COD_VER,"
                        cmd.Parameters.Add("@COD_VER", OleDbType.Numeric).Value = IIf(Len(Trim(word)) > 0, word, DBNull.Value)
                    Case "4"
                        sSQL = sSQL & "@TIPO_ESCRIT,"
                        cmd.Parameters.Add("@TIPO_ESCRIT", OleDbType.Numeric).Value = IIf(Len(Trim(word)) > 0, word, DBNull.Value)
                    Case "5"
                        sSQL = sSQL & "@IND_SIT_ESP,"
                        cmd.Parameters.Add("@IND_SIT_ESP", OleDbType.Numeric).Value = IIf(Len(Trim(word)) > 0, word, DBNull.Value)
                    Case "6"
                        sSQL = sSQL & "@NUM_REC_ANTERIOR,"
                        cmd.Parameters.Add("@NUM_REC_ANTERIOR", OleDbType.Numeric).Value = IIf(Len(Trim(word)) > 0, word, DBNull.Value)
                    Case "7"
                        sSQL = sSQL & "@DT_INI,"
                        cmd.Parameters.Add("@DT_INI", OleDbType.Numeric).Value = IIf(Len(Trim(word)) > 0, word, DBNull.Value)
                    Case "8"
                        sSQL = sSQL & "@DT_FIN,"
                        cmd.Parameters.Add("@DT_FIN", OleDbType.Numeric).Value = IIf(Len(Trim(word)) > 0, word, DBNull.Value)
                    Case "9"
                        sSQL = sSQL & "@NOME,"
                        cmd.Parameters.Add("@NOME", OleDbType.Numeric).Value = IIf(Len(Trim(word)) > 0, word, DBNull.Value)
                    Case "10"
                        sSQL = sSQL & "@CNPJ,"
                        cmd.Parameters.Add("@CNPJ", OleDbType.Numeric).Value = IIf(Len(Trim(word)) > 0, word, DBNull.Value)
                    Case "11"
                        sSQL = sSQL & "@UF,"
                        cmd.Parameters.Add("@UF", OleDbType.Numeric).Value = IIf(Len(Trim(word)) > 0, word, DBNull.Value)
                    Case "12"
                        sSQL = sSQL & "@COD_MUN,"
                        cmd.Parameters.Add("@COD_MUN", OleDbType.Numeric).Value = IIf(Len(Trim(word)) > 0, word, DBNull.Value)
                    Case "13"
                        sSQL = sSQL & "@SUFRAMA,"
                        cmd.Parameters.Add("@SUFRAMA", OleDbType.Numeric).Value = IIf(Len(Trim(word)) > 0, word, DBNull.Value)
                    Case "14"
                        sSQL = sSQL & "@IND_NAT_PJ,"
                        cmd.Parameters.Add("@IND_NAT_PJ", OleDbType.Numeric).Value = IIf(Len(Trim(word)) > 0, word, DBNull.Value)
                    Case "15"
                        sSQL = sSQL & "@IND_ATIV)"
                        cmd.Parameters.Add("@IND_ATIV", OleDbType.Numeric).Value = IIf(Len(Trim(word)) > 0, word, DBNull.Value)
                    Case Else

                End Select

                i += 1
            Next


            'Next

            'set paramaters


            'cmd.CommandText = "INSERT INTO ECF_C_0000 (CNPJ_CLI, TIP_REG, COD_VER, TIPO_ESCRIT, IND_SIT_ESP, NUM_REC_ANTERIOR, DT_INI, DT_FIN, NOME, CNPJ, UF, COD_MUN, SUFRAMA, IND_NAT_PJ, IND_ATIV) "
            'sSQL = "INSERT INTO ECF_C_0000 (CNPJ_CLI, TIP_REG, COD_VER, TIPO_ESCRIT, IND_SIT_ESP, NUM_REC_ANTERIOR, DT_INI, DT_FIN, NOME, CNPJ, UF, COD_MUN, SUFRAMA, IND_NAT_PJ, IND_ATIV)"
            '() sSQL = sSQL & "  VALUES(@last_name, @first_name, @mid_name, @birth_date, @gender, @home_adr, @bus_adr, @tel_no, @mobile_no, @email)"


            cmd.CommandText = sSQL
            cmd.ExecuteNonQuery()

        End Sub
    End Class

    *****É um programa que pega txt e joga access******



    domingo, 12 de abril de 2015 20:33

Todas as Respostas

  • Boa tarde Matheus,

    Não entendi, qual a sua dúvida ou problema? Você apenas mandou o código. Por favor, seja mais específico e nos diga o que está acontecendo de errado com seu código para que possamos ajudar.

    Obrigado,

    Abraço!


    Eduardo Romero

    Esse conteudo e fornecido sem garantias de qualquer tipo, seja expressa ou implicita.

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as respostas que resolveram o seu problema. Essa e uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais facil para os outros visitantes encontrarem a resolucao mais tarde.

    quarta-feira, 15 de abril de 2015 16:42
    Moderador
  • Acredito que você não tenha instanciado uma conexão.

    Em seu objeto em que há o comando SQL, provavelmente do tipo OleDbCommand, tem uma propriedade chamada "Connection". Precisa acessar "meuComando.Connection = new OleDbConnection(...)" e colocar, dentro dos parenteses new de OleDbConnection os parâmetros para iniciar a conexão.

    Obs: Não se esqueça de iniciar a conexao antes "meuComando.Connection.Open();" após isso.

    quarta-feira, 15 de abril de 2015 17:07