Jump to content

Erro no registo [Resolvido]


sagedighetto
 Share

Recommended Posts

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
Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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:

Link to comment
Share on other sites

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:

Link to comment
Share on other sites

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("")

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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
Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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:

Link to comment
Share on other sites

@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)
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.