Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

antidzrt

Erro ao inserir registo

Mensagens Recomendadas

antidzrt

'caminho da base de dados
        Dim conn As String = ("gesviaConnectionString")
        'comando de sql que se pretende, neste caso for para inserir registo
        Dim SQl As String = "INSERT INTO Principal ([Nome],[serviço],[n_mec],[Categoria],[Ano],[n_selo],[Marca1],[Marca2],[Marca3][Matricula1][Matricula2][Matricula3],)Values(@nome,@serviço,@n_mec,@Categoria,@Ano,@n_selo,@Marca1,@Marca2,@Marca3,@Matricula1,@Matricula2,@Matricula3);"
        'conecçao a bd
        Dim connection As New SqlConnection(conn)
        'definir uma variavel para guardar os valores que se pretende enviar para a base de dados
        Dim valores As New SqlCommand(SQl, connection)
        valores.Parameters.Add("@Nome", SqlDbType.VarChar).Value = Nome.Text
        valores.Parameters.Add("@Serviço", SqlDbType.VarChar).Value = Servico.Text
        valores.Parameters.Add("@n_mec", SqlDbType.Int).Value = n_mec.Text
        valores.Parameters.Add("@Categoria", SqlDbType.VarChar).Value = Categoria.Text
        valores.Parameters.Add("@Ano", SqlDbType.Int).Value = Ano.Text
        valores.Parameters.Add("@n_selo", SqlDbType.Int).Value = n_selo.Text
        valores.Parameters.Add("@marca1", SqlDbType.VarChar).Value = Marca1.SelectedItem
        valores.Parameters.Add("@marca2", SqlDbType.VarChar).Value = Marca2.SelectedItem
        valores.Parameters.Add("@marca3", SqlDbType.VarChar).Value = Marca3.SelectedItem
        valores.Parameters.Add("@matricula1", SqlDbType.VarChar).Value = Matricula1.Text
        valores.Parameters.Add("@matricula2", SqlDbType.VarChar).Value = Matricula1.Text
        valores.Parameters.Add("@matricula3", SqlDbType.VarChar).Value = Matricula1.Text

        Dim x As Integer = valores.ExecuteNonQuery()

        If x = 1 Then
            MsgBox("Pedido registado")
        End If

        ' Fecha a ligação e limpa as variáveis
        connection.Close()
        connection = Nothing
        valores = Nothing

dame este erro

Format of the initialization string does not conform to specification starting at index 0.

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.ArgumentException: Format of the initialization string does not conform to specification starting at index 0.

Source Error:

Line 17:        Dim SQl As String = "INSERT INTO Principal ([Nome],[serviço],[n_mec],[Categoria],[Ano],[n_selo],[Marca1],[Marca2],[Marca3][Matricula1][Matricula2][Matricula3],)Values(@nome,@serviço,@n_mec,@Categoria,@Ano,@n_selo,@Marca1,@Marca2,@Marca3,@Matricula1,@Matricula2,@Matricula3);"

Line 18:        'conecçao a bd

Line 19:        Dim connection As New SqlConnection(conn)

Line 20:        'definir uma variavel para guardar os valores que se pretende enviar para a base de dados

Line 21:        Dim valores As New SqlCommand(SQl, connection)

Já não sei o que fazer |:

Programaçao nao e o meu forte

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
ribeiro55

Olá antidzrt, e bem-vindo.

Em análise superficial, vejo dois problemas:

- A tua connection string é tudo menos uma connection string. Consulta este site para entenderes melhor.

- Não uses caracteres especiais, como o ç para nomes de campos, parâmetros, tudo.

EDIT: Não tenho a certeza, nem posso testar agora, mas acho que ao adicionar parâmetros, não precisas de acrescentar o @. Só são necessários no comando para serem correctamente interpretados.


Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
antidzrt

mas eu po login usei e deu

im strConn As String
        strConn = WebConfigurationManager.ConnectionStrings("gesviaConnectionString").ConnectionString

        Dim Conn As New SqlConnection(strConn)
        Conn.Open()

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
renafi

A meu ver, o que está a dar o erro, é mesmo nas conversões de dados, ou virem valores nulos. Todas essas TextBoxes e ComboBoxes estão preenchidas/seleccionadas?

faz um breakpoint a partir da primeira inserção de parametros, e verifica o conteúdo desses parametros.

Ps: e tal como o ribeiro55 disse, não uses o ç


Oracle Certified Professional - AdministraçãoOracle Certified Professional - Pl/sqlMCPD - Microsoft Certified Professional DeveloperMCTS - Microsoft Certified Technology Specialist

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
ribeiro55

Ah, estás a usar o webconfmanager.

Nesse caso usa exactamente o mesmo código para apanhares a mesma connection string para o insert:

 strConn = WebConfigurationManager.ConnectionStrings("gesviaConnectionString").ConnectionString


Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
antidzrt

obrigado pessoal ja passei esse erro

mas agora dame erro na query  :wallbash:

nao percebo o porque do erro

ExecuteNonQuery requires an open and available Connection. The connection's current state is closed.

so fecho a conexão no fim.....

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
renafi

Faz um Open() à conexão antes de fazeres o ExecuteNonQuery...


Oracle Certified Professional - AdministraçãoOracle Certified Professional - Pl/sqlMCPD - Microsoft Certified Professional DeveloperMCTS - Microsoft Certified Technology Specialist

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
antidzrt

o problema é que se ponho não  converte

Object must implement IConvertible.

Nunca trabalhei em aspx nem com o SQL server na escola e agora vim pa estagio e tou um bocado a rasca, isto com forms e bem mais simples e em acess

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
antidzrt

nao sei se tem a ver mas usei uma dropdownlist para as marcas e n tenho a certeza que esteja bem

valores.Parameters.Add("@marca1", SqlDbType.VarChar).Value = Marca1.SelectedItem
        valores.Parameters.Add("@marca2", SqlDbType.VarChar).Value = Marca2.SelectedItem
        valores.Parameters.Add("@marca3", SqlDbType.VarChar).Value = Marca3.SelectedItem

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.