• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

mariogx

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

4 mensagens neste tópico

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 :cheesygrin:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros 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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros 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.  :thumbdown:

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

Acho k deve resolver o teu problema...  :cheesygrin:

Filka Bem

SoulOnFire

0

Partilhar esta mensagem


Link 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