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

sagedighetto

Erro no registo [Resolvido]

Mensagens Recomendadas

sagedighetto

Ao fazer o registo não me regista os dados que insiro mas sim "true" para os varchar e "1" para os int em vez de aparecer os dados..

Sub Query1()

        Dim strConn As String
        strConn = WebConfigurationManager.ConnectionStrings("siuciConnectionString").ConnectionString
        Dim SQl As String = "INSERT INTO principal  ([Nome],[utente],[datanasc],[sexo],[raca],[profissao],[sp],[res],[tel],[prouci],[cama],[datadmi],[classificacao],[prov1],[prov2],[nosologico],[peso],[altura],[sinadmissao1],[sinadmissao2],[sinadmissao3],[medico],[rhosp],[alta],[resul])Values(@Nome,@utente,@datanasc,@sexo,@raca,@profissao,@sp,@res,@tel,@prouci,@cama,@datadmi,@classificacao,@prov1,@prov2,@nosologico,@peso,@altura,@sinadmissao1,@sinadmissao2,@sinadmissao3,@medico,@rhosp,@alta,@resul);"

        Dim connection As New SqlConnection(strConn)

        Dim valores As New SqlCommand(SQl, connection)
        valores.Parameters.Add("@Nome", SqlDbType.VarChar).Value = TextBox1.Text = IIf(String.IsNullOrEmpty(TextBox1.Text), "NULL", TextBox1.Text)
        valores.Parameters.Add("@utente", SqlDbType.Int).Value = TextBox2.Text = IIf(String.IsNullOrEmpty(TextBox2.Text), "NULL", TextBox2.Text)
        valores.Parameters.Add("@datanasc", SqlDbType.Int).Value = TextBox3.Text = IIf(String.IsNullOrEmpty(TextBox3.Text), "NULL", TextBox3.Text)
        valores.Parameters.Add("@sexo", SqlDbType.VarChar).Value = DropDownList4.SelectedItem.Value = IIf(String.IsNullOrEmpty(DropDownList4.SelectedValue), "NULL", DropDownList4.SelectedValue)
        valores.Parameters.Add("@raca", SqlDbType.VarChar).Value = DropDownList5.SelectedItem.Value = IIf(String.IsNullOrEmpty(DropDownList5.SelectedValue), "NULL", DropDownList5.SelectedValue)
        valores.Parameters.Add("@profissao", SqlDbType.VarChar).Value = DropDownList6.SelectedItem.Value = IIf(String.IsNullOrEmpty(DropDownList6.SelectedValue), "NULL", DropDownList6.SelectedValue)
        valores.Parameters.Add("@sp", SqlDbType.VarChar).Value = DropDownList7.SelectedItem.Value = IIf(String.IsNullOrEmpty(DropDownList7.SelectedValue), "NULL", DropDownList7.SelectedValue)
        valores.Parameters.Add("@res", SqlDbType.VarChar).Value = TextBox4.Text = IIf(String.IsNullOrEmpty(TextBox4.Text), "NULL", TextBox4.Text)
        valores.Parameters.Add("@tel", SqlDbType.Int).Value = TextBox5.Text = IIf(String.IsNullOrEmpty(TextBox5.Text), "NULL", TextBox5.Text)
        valores.Parameters.Add("@prouci", SqlDbType.Int).Value = TextBox6.Text = IIf(String.IsNullOrEmpty(TextBox6.Text), "NULL", TextBox6.Text)
        valores.Parameters.Add("@cama", SqlDbType.Int).Value = TextBox7.Text = IIf(String.IsNullOrEmpty(TextBox7.Text), "NULL", TextBox7.Text)
        valores.Parameters.Add("@datadmi", SqlDbType.Int).Value = TextBox8.Text = IIf(String.IsNullOrEmpty(TextBox8.Text), "NULL", TextBox8.Text)
        valores.Parameters.Add("@classificacao", SqlDbType.VarChar).Value = DropDownList8.SelectedItem.Value = IIf(String.IsNullOrEmpty(DropDownList8.SelectedValue), "NULL", DropDownList8.SelectedValue)
        valores.Parameters.Add("@prov1", SqlDbType.VarChar).Value = DropDownList9.SelectedItem.Value = IIf(String.IsNullOrEmpty(DropDownList9.SelectedValue), "NULL", DropDownList9.SelectedValue)
        valores.Parameters.Add("@prov2", SqlDbType.VarChar).Value = DropDownList10.SelectedItem.Value = IIf(String.IsNullOrEmpty(DropDownList10.SelectedValue), "NULL", DropDownList10.SelectedValue)
        valores.Parameters.Add("@nosologico", SqlDbType.VarChar).Value = DropDownList11.SelectedItem.Value = IIf(String.IsNullOrEmpty(DropDownList11.SelectedValue), "NULL", DropDownList11.SelectedValue)
        valores.Parameters.Add("@peso", SqlDbType.Int).Value = TextBox9.Text = IIf(String.IsNullOrEmpty(TextBox9.Text), "NULL", TextBox9.Text)
        valores.Parameters.Add("@altura", SqlDbType.Int).Value = TextBox10.Text = IIf(String.IsNullOrEmpty(TextBox10.Text), "NULL", TextBox10.Text)
        valores.Parameters.Add("@sinadmissao1", SqlDbType.VarChar).Value = DropDownList12.SelectedItem.Value = IIf(String.IsNullOrEmpty(DropDownList12.SelectedValue), "NULL", DropDownList12.SelectedValue)
        valores.Parameters.Add("@sinadmissao2", SqlDbType.VarChar).Value = DropDownList13.SelectedItem.Value = IIf(String.IsNullOrEmpty(DropDownList13.SelectedValue), "NULL", DropDownList13.SelectedValue)
        valores.Parameters.Add("@sinadmissao3", SqlDbType.VarChar).Value = DropDownList14.SelectedItem.Value = IIf(String.IsNullOrEmpty(DropDownList14.SelectedValue), "NULL", DropDownList14.SelectedValue)
        valores.Parameters.Add("@medico", SqlDbType.VarChar).Value = DropDownList15.SelectedItem.Value = IIf(String.IsNullOrEmpty(DropDownList15.SelectedValue), "NULL", DropDownList15.SelectedValue)
        valores.Parameters.Add("@rhosp", SqlDbType.VarChar).Value = DropDownList16.SelectedItem.Value = IIf(String.IsNullOrEmpty(DropDownList16.SelectedValue), "NULL", DropDownList16.SelectedValue)
        valores.Parameters.Add("@alta", SqlDbType.VarChar).Value = TextBox14.Text = IIf(String.IsNullOrEmpty(TextBox14.Text), "NULL", TextBox14.Text)
        valores.Parameters.Add("@resul", SqlDbType.VarChar).Value = DropDownList17.SelectedItem.Value = IIf(String.IsNullOrEmpty(DropDownList17.SelectedValue), "NULL", DropDownList17.SelectedValue)

        connection.Open()

        valores.ExecuteNonQuery()


        connection.Close()
        connection = Nothing
        valores = Nothing


    End Sub

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
bioshock

Faz só uma experiência, nesta linha de código:

valores.Parameters.Add("@Nome", SqlDbType.VarChar).Value = TextBox1.Text = IIf(String.IsNullOrEmpty(TextBox1.Text), "NULL", TextBox1.Text)

Altera para:

valores.Parameters.Add("@Nome", SqlDbType.VarChar).Value = TextBox1.Text

E vê se regista o valor como tu queres.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
antidzrt

Tou com o mesmo problema que ele mas eu tenho mesmo de deixar os campos vazios nao os preencho todos

abro novo topico?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
sagedighetto

ao tirar aquilo que disses-te deu-me este erro:

String or binary data would be truncated.

The statement has been terminated.

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.Data.SqlClient.SqlException: String or binary data would be truncated.

The statement has been terminated.

Source Error:

Line 114:        connection.Open()

Line 115:

Line 116:        valores.ExecuteNonQuery()Line 117:

Line 118:

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
bioshock

Faz lá antes isto:

Dim X as Integer = valores.ExecuteNonQuery()

If x < 1 then
Messagebox.show("Erro!")
Else
Messagebox.show("Dados inseridos com sucesso!")
End if

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
sagedighetto

eu tive de mudar para msgbox pk messagebox.show da erro não existe isso(eu tenho visual studio 2010)

o erro que dá é:

Showing a modal dialog box or form when the application is not running in UserInteractive mode is not a valid operation. Specify the ServiceNotification or DefaultDesktopOnly style to display a notification from a service application.

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.InvalidOperationException: Showing a modal dialog box or form when the application is not running in UserInteractive mode is not a valid operation. Specify the ServiceNotification or DefaultDesktopOnly style to display a notification from a service application.

Source Error:

Line 119:            MsgBox("Erro!")

Line 120:        Else

Line 121:            MsgBox("Dados inseridos com sucesso!")

Line 122:        End If

Line 123:

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
bioshock

Dim strConn As String

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

Supostamente, tens isto ligado a onde? É isto que define onde está a tua BD?

Agora que estou a reparar melhor no teu código, tens algumas coisas mal.

Aproveita este código que te deixo aqui como exemplo e mete-o à tua medida. Altera os campos que achares necessários:

Try
            ' Selecciona a Base de dados;
            Dim BaseDeDados As String = "Data Source=.\SQLEXPRESS;AttachDbFilename='C:\BaseDados.mdf';" &  ";Integrated Security=True;User Instance=True"
            ' Insere as informações nas tabelas & campos;
            Dim query As String = "INSERT INTO TabelaQueQueres([NomeCampo1], [NomeCampo2]) VALUES (@nomecampo1, @nomecampo2);"
            ' Cria a connexão com a Base de dados;
            Dim connection As New SqlConnection(BaseDeDados)
            ' Especifica quais as informações a serem digitadas nos campos da base de dados;
            Dim command As New SqlCommand(query, connection)
            command.Parameters.Add("@nomecampo1", OleDbType.VarChar).Value = TextBox1.Text
            command.Parameters.Add("@nomecampo2", OleDbType.VarChar).Value = TextBox2.Text
              ' Abre a connexão;
            connection.Open()
            ' Guarda em X o número de registos inseridos;
            Dim x As Integer = command.ExecuteNonQuery()
            If x < 1 Then
                MessageBox.Show("Falha na inserção de dados, volte a tentar!", My.Application.Info.Title, MessageBoxButtons.OK, MessageBoxIcon.Error)
            Else
                MessageBox.Show("Registo inserido com sucesso!")
            End If
            ' Fecha a ligação e limpa as variáveis 
            connection.Close()
            connection = Nothing
            command = Nothing
        Catch ex As Exception
            MessageBox.Show(ex.Message, My.Application.Info.Title, MessageBoxButtons.OK, MessageBoxIcon.Error)
        End Try

Observação: Eu nunca utilizei o VS 2010, mas duvido muito que não traga a Class MessageBox.Show("")

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
sagedighetto

eu defino a minha ligação a bd no web config porque a minha base de dados está em sql

em vs 2010 n existe a classe messagebox.show...

em relação ao teu codigo eu acho que tenho tudo o que tu tens  :cheesygrin:

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
bioshock

Experimenta como eu te disse e troca ali aquela linha:

command.Parameters.Add("@nomecampo1", OleDbType.VarChar).Value = TextBox1.Text

Para:

command.Parameters.Add("@nomecampo1", SqlDbType.VarChar).Value = TextBox1.Text

E vê só se os dados estão a ser registados. Não te esqueças de mudar o caminho à BD se necessário.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
sagedighetto

OleDbType é para base de dados em access a minha ta em sql nem me deixa escrever OleDbType so deixa OleDb e não server para isto:S

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
sagedighetto

LOL se vires o meu primeiro post eu tenho assim por isso pensei k te tivesses enganado e que tinhas dito para por o oledbtype

valores.Parameters.Add("@Nome", SqlDbType.VarChar).Value = TextBox1.Text

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
antidzrt

Boas pessoal

Isto na minha base dados so insere bem a  1º matricula a 1º Marca e o 1ª ano

Se eu quiser meter mais que uma matricula mesmo que eu escreva a matricula ou seleccione uma marca ou um Ano regista na base dados "False" ou "true" e para o  Ano "1" ou "0"

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

        Dim SQl As String = "INSERT INTO Marca ([Marca1],[Marca2],[Marca3],[Marca4],[Marca5],[Marca6],[Marca7],[Marca8],[Marca9],[matricula1],[matricula2],[matricula3],[matricula4],[matricula5],[matricula6],[matricula7],[matricula8],[matricula9],[ano1],[ano2],[ano3],[ano4],[ano5],[ano6],[ano7],[ano8],[ano9])Values(@Marca1,@marca2,@marca3,@marca4,@marca5,@marca6,@marca7,@marca8,@marca9,@matricula1,@matricula2,@matricula3,@matricula4,@matricula5,@matricula6,@matricula7,@matricula8,@matricula9,@ano1,@ano2,@ano3,@ano4,@ano5,@ano6,@ano7,@ano8,@ano9);"

        Dim connection As New SqlConnection(strConn)

        Dim valores As New SqlCommand(SQl, connection)
        valores.Parameters.Add("@Marca1", SqlDbType.VarChar).Value = Marca1.SelectedItem.Value
        valores.Parameters.Add("@marca2", SqlDbType.VarChar).Value = Marca3.SelectedItem.Value = IIf(String.IsNullOrEmpty(Marca2.SelectedValue), "NULL", Marca2.SelectedValue)
        valores.Parameters.Add("@marca3", SqlDbType.VarChar).Value = Marca3.SelectedItem.Value = IIf(String.IsNullOrEmpty(Marca3.SelectedValue), "NULL", Marca3.SelectedValue)
        valores.Parameters.Add("@marca4", SqlDbType.VarChar).Value = Marca4.SelectedItem.Value = IIf(String.IsNullOrEmpty(Marca4.SelectedValue), "NULL", Marca4.SelectedValue)
        valores.Parameters.Add("@marca5", SqlDbType.VarChar).Value = Marca5.SelectedItem.Value = IIf(String.IsNullOrEmpty(Marca5.SelectedValue), "NULL", Marca5.SelectedValue)
        valores.Parameters.Add("@marca6", SqlDbType.VarChar).Value = Marca6.SelectedItem.Value = IIf(String.IsNullOrEmpty(Marca6.SelectedValue), "NULL", Marca6.SelectedValue)
        valores.Parameters.Add("@marca7", SqlDbType.VarChar).Value = Marca7.SelectedItem.Value = IIf(String.IsNullOrEmpty(Marca7.SelectedValue), "NULL", Marca7.SelectedValue)
        valores.Parameters.Add("@marca8", SqlDbType.VarChar).Value = Marca8.SelectedItem.Value = IIf(String.IsNullOrEmpty(Marca8.SelectedValue), "NULL", Marca8.SelectedValue)
        valores.Parameters.Add("@marca9", SqlDbType.VarChar).Value = Marca9.SelectedItem.Value = IIf(String.IsNullOrEmpty(Marca9.SelectedValue), "NULL", Marca9.SelectedValue)
        valores.Parameters.Add("@matricula1", SqlDbType.VarChar).Value = Matricula1.Text
        valores.Parameters.Add("@matricula2", SqlDbType.VarChar).Value = Matricula2.Text = IIf(String.IsNullOrEmpty(Matricula2.Text), "NULL", Matricula2.Text)
        valores.Parameters.Add("@matricula3", SqlDbType.VarChar).Value = Matricula3.Text = IIf(String.IsNullOrEmpty(Matricula3.Text), "NULL", Matricula3.Text)
        valores.Parameters.Add("@matricula4", SqlDbType.VarChar).Value = Matricula4.Text = IIf(String.IsNullOrEmpty(Matricula4.Text), "NULL", Matricula4.Text)
        valores.Parameters.Add("@matricula5", SqlDbType.VarChar).Value = Matricula5.Text = IIf(String.IsNullOrEmpty(Matricula5.Text), "NULL", Matricula5.Text)
        valores.Parameters.Add("@matricula6", SqlDbType.VarChar).Value = matricula6.Text = IIf(String.IsNullOrEmpty(matricula6.Text), "NULL", matricula6.Text)
        valores.Parameters.Add("@matricula7", SqlDbType.VarChar).Value = matricula7.Text = IIf(String.IsNullOrEmpty(matricula7.Text), "NULL", matricula7.Text)
        valores.Parameters.Add("@matricula8", SqlDbType.VarChar).Value = matricula8.Text = IIf(String.IsNullOrEmpty(matricula8.Text), "NULL", matricula8.Text)
        valores.Parameters.Add("@matricula9", SqlDbType.VarChar).Value = matricula9.Text = IIf(String.IsNullOrEmpty(matricula9.Text), "NULL", matricula9.Text)
        valores.Parameters.Add("@Ano1", SqlDbType.Int).Value = Ano1.SelectedItem.Value
        valores.Parameters.Add("@Ano2", SqlDbType.Int).Value = Ano2.SelectedItem.Value = IIf(String.IsNullOrEmpty(Ano2.SelectedValue), "NULL", Ano2.SelectedValue)
        valores.Parameters.Add("@Ano3", SqlDbType.Int).Value = Ano3.SelectedItem.Value = IIf(String.IsNullOrEmpty(Ano3.SelectedValue), "NULL", Ano3.SelectedValue)
        valores.Parameters.Add("@Ano4", SqlDbType.Int).Value = Ano4.SelectedItem.Value = IIf(String.IsNullOrEmpty(Ano4.SelectedValue), "NULL", Ano4.SelectedValue)
        valores.Parameters.Add("@Ano5", SqlDbType.Int).Value = Ano5.SelectedItem.Value = IIf(String.IsNullOrEmpty(Ano5.SelectedValue), "NULL", Ano5.SelectedValue)
        valores.Parameters.Add("@Ano6", SqlDbType.Int).Value = Ano6.SelectedItem.Value = IIf(String.IsNullOrEmpty(Ano6.SelectedValue), "NULL", Ano6.SelectedValue)
        valores.Parameters.Add("@Ano7", SqlDbType.Int).Value = Ano7.SelectedItem.Value = IIf(String.IsNullOrEmpty(Ano7.SelectedValue), "NULL", Ano7.SelectedValue)
        valores.Parameters.Add("@Ano8", SqlDbType.Int).Value = Ano8.SelectedItem.Value = IIf(String.IsNullOrEmpty(Ano8.SelectedValue), "NULL", Ano8.SelectedValue)
        valores.Parameters.Add("@Ano9", SqlDbType.Int).Value = Ano9.SelectedItem.Value = IIf(String.IsNullOrEmpty(Ano9.SelectedValue), "NULL", Ano9.SelectedValue)
         connection.Open()

        Dim x As Integer = valores.ExecuteNonQuery()

   
        connection.Close()
        connection = Nothing
        valores = Nothing

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
bioshock

O vosso problema é não lerem com atenção o que vos é dito.

Eu sei que tu tinhas assim, eu é que me enganei, então disse para trocares aquela linha, mas tu nem tão pouco olhaste para o que eu disse.

Os dados estão a ser registados? Basta experimentares com um ou dois campos.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
sagedighetto

eu percebi...

os dados não estão a ser registados aparece este erro:

String or binary data would be truncated.

The statement has been terminated.

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.Data.SqlClient.SqlException: String or binary data would be truncated.

The statement has been terminated.

Source Error:

Line 114:        connection.Open()

Line 115:

Line 116:        valores.ExecuteNonQuery()

Line 117:

Line 118:

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
bioshock

Pelo que percebo, estás a tentar por valores em alguma coluna, maior do que o estipulado por ti.

Algo como: Tens definido o tamanho máximo de 10 e estás a por valores com tamanho maior do que 10.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
antidzrt

Eu percebo o que me é dito...

o sagedighetto nao precisa do Iff porque não vai deixar campos em branco por isso, agora eu vou.

Se tiro isso nao regista dame erro no input string porque a dropdownlist e a textbox tao em brancos

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
jnetic

@antidzrt

Olha que tens uma gralha nesta linha (Marca3.SelectedItem.Value deve ser Marca2)

        valores.Parameters.Add("@marca2", SqlDbType.VarChar).Value = Marca3.SelectedItem.Value = IIf(String.IsNullOrEmpty(Marca2.SelectedValue), "NULL", Marca2.SelectedValue)

Deixa perguntar-te... porque não fazer a instrução assim:

        valores.Parameters.Add("@marca2", SqlDbType.VarChar).Value = IIf(String.IsNullOrEmpty(Marca2.SelectedValue), "NULL", Marca2.SelectedValue)

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
bioshock

sim bioshock ja mudei isso e funcionou em principio ja deve tar tudo bem obrigado B)

Qualquer coisa apita, não te esqueças de dar o tópico como resolvido!  :cheesygrin:

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
antidzrt

ups devo me ter enganado enquanto apagava

porque da erro no input string

Input string was not in a correct format

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.