Jump to content

[VB.NET] Segurança na inserção de dados


mariogx

Recommended Posts

boas ppl

tenho duas duvidas

1º Keriam inserir uma segurança para n haver erros nu executenonquery devido ao overflow, ou seja, u utlizador csg inserir numeros ,supostamente unicos, várias x , u q vai dar este erro.

2º Nã cg inserir dados num campo da BD chamdo Utilizadores, antes chama-se Users mudei porque podia ser u palavra reservada, mas continuo sem csgr gravar, o código que poderia fazer isto não está presente nu código apresentado a seguir.

CODIGO


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

        'Inserir Docentes/Não docentes na tabela
        Dim valor As Integer
        ligacao.Open() 'Abrir a base de dados
        Dim sql As New OleDbCommand("Insert Into doc(ID, Nome, Gabinete, Extensão, Telefone, DS, Pass) values('" & txtid.Text & "','" & txtnome.Text & "','" & txtgab.Text & "','" & txtex.Text & "','" & txttel.Text & "','" & combods.Text & "','" & txtpass.Text & "')", ligacao)
        'falta password =S
        'sql.Connection = ligacao
        'meter segurança porque dus ID repetidos
        valor = sql.ExecuteNonQuery()
        MsgBox(sql.CommandText)

        ' If valor = 1 Then
        'MsgBox("O docente ja se encontra registado")
        'else: msgbox("Inserido " & valor & " novo doecente")
        ' End If

        ligacao.Close() 'Fechar a base de dados
    End Sub

Agradeço bués a kem me csgr ajudar 😁

Link to comment
Share on other sites

yh dps de executar inserir dados i dps de tentar gravar os dados..da.me erro nu executenonquery erro de overflow, devido aos suposto numeros chave primaria q se "estam a repetir" ele da u erro pk n ksg inserir dados iguais u q é normal..logo eu keria era um pedaço de código de protecção du tipo kd ele verificasse a existencia de uma palavra chave igual ele avisava u utilizador

Link to comment
Share on other sites

Mas qual é a tua chave primaria??

o ID? é sequencial ou n?

é que se for sequencial nem necessitas de o mandar na query porque o sql mete-o automaticamente!

se n for sequencial, antes de fazeres a introdução fazes um SELECT COUNT * FROM tabela WHERE ID = "novo ID"

e executas um executescalar, depois s o resultado for superior a 0 então é mau sinal pk ja existe.  ?

Logo so fazes a introdução se o resultado for 0

Acho k deve resolver o teu problema...  😁

Filka Bem

SoulOnFire

Fikem Bem!!!Miguel Duarte - (SoulOnFire)O meu BLOG - XAML E WPF - http://wpfpt.wordpress.com/

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
×
×
  • 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.