Jump to content

problema com o identity no sqlserver


joaogomes

Recommended Posts

Boa Tarde. Estou com um problema quando pretendo guardar um registo numa base de dados em sqlserver. a tabela em causa tem o campo IDTrabalhador como chave primária e identity(1,1), para ir inserindo este valor automaticamente. Mas está a dar um erro e não deixa inserir. O meu código é o seguinte:

Imports System.Text
Imports System.Security.Cryptography
Public Class FrmAdicionarFuncionario

Private Shared TripleDES As New TripleDESCryptoServiceProvider
Private Shared MD5 As New MD5CryptoServiceProvider

' Definição da chave de encriptação/desencriptação
Private Const key As String = "CHAVE12345teste"

''' <summary>
''' Calcula o MD5 Hash
''' </summary>
''' <param name="value">Chave</param>
Public Shared Function MD5Hash(ByVal value As String) As Byte()

' Converte a chave para um array de bytes
Dim byteArray() As Byte = ASCIIEncoding.ASCII.GetBytes(value)
Return MD5.ComputeHash(byteArray)

End Function

''' <summary>
''' Encripta uma string com base em uma chave
''' </summary>
''' <param name="stringToEncrypt">String a encriptar</param>
Public Shared Function Encrypt(ByVal stringToEncrypt As String) As String

Try

' Definição da chave e da cifra (que neste caso é Electronic
' Codebook, ou seja, encriptação individual para cada bloco)
TripleDES.Key = MD5Hash(key)
TripleDES.Mode = CipherMode.ECB

' Converte a string para bytes e encripta
Dim Buffer As Byte() = ASCIIEncoding.ASCII.GetBytes(stringToEncrypt)
Return Convert.ToBase64String(TripleDES.CreateEncryptor().TransformFinalBlock(Buffer, 0, Buffer.Length))

Catch ex As Exception
MessageBox.Show(ex.Message, My.Application.Info.Title, MessageBoxButtons.OK, MessageBoxIcon.Error)

Return String.Empty

End Try

End Function



''' <summary>
''' Desencripta uma string com base em uma chave
''' </summary>
''' <param name="encryptedString">String a decriptar</param>
Public Shared Function Decrypt(ByVal encryptedString As String) As String

Try

' Definição da chave e da cifra
TripleDES.Key = MD5Hash(key)
TripleDES.Mode = CipherMode.ECB

' Converte a string encriptada para bytes e decripta
Dim Buffer As Byte() = Convert.FromBase64String(encryptedString)
Return ASCIIEncoding.ASCII.GetString(TripleDES.CreateDecryptor().TransformFinalBlock(Buffer, 0, Buffer.Length))

Catch ex As Exception
MessageBox.Show(ex.Message, My.Application.Info.Title, MessageBoxButtons.OK, MessageBoxIcon.Error)

Return String.Empty

End Try

End Function
Private Sub InserirVoluntario_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.TrabalhadoresTableAdapter.Fill(Me.MuseuDataSet.Trabalhadores)


End Sub
Sub Limpar_Campos()
'IDTrabalhadorTextBox.DataBindings.Clear()
NomeTextBox.DataBindings.Clear()
UtilizadorTextBox.DataBindings.Clear()
PasswordTextBox.DataBindings.Clear()

'IDTrabalhadorTextBox.Text = Nothing
NomeTextBox.Text = Nothing
UtilizadorTextBox.Text = Nothing
PasswordTextBox.Text = Nothing

'IDTrabalhadorTextBox.Focus()
End Sub


Sub Adicionar()
Limpar_Campos()
End Sub




Private Sub BtCancelar_Click(sender As System.Object, e As System.EventArgs) Handles BtCancelar.Click
Me.Close()
End Sub

Private Sub BtAdicionar_Click(sender As System.Object, e As System.EventArgs) Handles BtAdicionar.Click
Dim adapter_trabalhador As New MuseuDataSetTableAdapters.TrabalhadoresTableAdapter
Try

adapter_trabalhador.Insert(IDTrabalhadorTextBox.Text, NomeTextBox.Text, UtilizadorTextBox.Text, Encrypt(PasswordTextBox.Text))
MsgBox("Registo adicionado com sucesso!", MsgBoxStyle.Information, Me.Text)
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
End Class

O erro é o seguinte: A conversão da cadeia " " para o tipo integer não é válida.

Edited by Caça
GeSHi
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.