Jump to content

inserir na base de dados


oliveira1991

Recommended Posts

Boas, estou com o seguinte código:

Public Function InserirIntoBD(ByVal DBMS As BDMSObj, ByVal Commit As Boolean) As Boolean
	Try
		Dim SQL As String
		SQL = "INSERT INTO Estantes Values (@0,@1,@2, null)"
		DBMS.ExecutarSQL(SQL, Me.Estante, Me.Prateleira, Me.Seccao)
		'Salva Alterações
		If Commit Then
			DBMS.Commint()
		End If
		Me.AntigaPrateleira = Me.AntigaPrateleira
		Me.AntigaSeccao = Me.Seccao
		Me.AntigaEstante = Me.Estante
		Return True
	Catch ex As Exception
		DBMS.Rollback()
		Return False
	End Try
End Function
'metodo para ler informações da BD Prateleira
Public Function LerDaBD(ByVal DBMS As BDMSObj, ByVal Estante As String) As Boolean
	Try
		'seleciona o registo
		Dim S As String
		S = DBMS.CriarResultadosSet("SELECT * FROM Estantes WHERE Estante=@0", Estante)
		If DBMS.LerAndNotEOF(S) Then
			'filtrar dados
			Me.Estante = DBMS.MostraValorColuna(S, "Estante")
			Me.Prateleira = DBMS.MostraValorColuna(S, "Prateleira")
			Me.Seccao = DBMS.MostraValorColuna(S, "Seccao")
			'Set antigo=novo
			Me.AntigaPrateleira = Me.Prateleira
			Me.AntigaEstante = Me.Estante
			Me.AntigaSeccao = Me.Seccao
			'fechar os resultados
			DBMS.FechaResultadosSet(S)
			Return True
		Else
			' se nenhum registo for encontrado, fecha os resultados
			DBMS.FechaResultadosSet(S)
			'Rollback=voltar atras
			DBMS.Rollback()
			Return False
		End If
	Catch ex As Exception
		DBMS.Rollback()
		Return False
	End Try
End Function

é quando o utilizador clica no botão ok:

Private Sub BTN_OK_Click(sender As System.Object, e As System.EventArgs) Handles BTN_OK.Click

	If TXT_Estante.Text.Trim = "" Then
		MsgBox("O Campo Estante Não pode ser nulo", MsgBoxStyle.Critical Or MsgBoxStyle.OkOnly, "Erro Externo")
		TXT_Estante.Focus()
		Exit Sub
	End If
	If TXT_Prateleira.Text.Trim = "" Then
		MsgBox("O Campo Prateleira Não pode ser nulo", MsgBoxStyle.Critical Or MsgBoxStyle.OkOnly, "Erro Externo")
		TXT_Prateleira.Focus()
		Exit Sub
	End If
	If TXT_Seccao.Text.Trim = "" Then
		MsgBox("O Campo Secção Não pode ser nulo", MsgBoxStyle.Critical Or MsgBoxStyle.OkOnly, "Erro Externo")
		TXT_Seccao.Focus()
		Exit Sub
	End If
	Dim estanteObjecto As New ClasseEstantes
	estanteObjecto.SetEstante(TXT_Estante.Text.Trim)
	estanteObjecto.SetPrateleira(TXT_Prateleira.Text.Trim)
	estanteObjecto.SetSeccao(TXT_Seccao.Text.Trim)
	If Not estanteObjecto.InserirIntoBD(FRM_Principal.DBMS, True) Then
		MsgBox("Erro na inserção de dados", MsgBoxStyle.Critical Or MsgBoxStyle.OkOnly, "Erro Interno")
	Else
		Me.DialogResult = Windows.Forms.DialogResult.OK
	End If
End Sub

Live for ever

Link to comment
Share on other sites

erro vai no ultimo if, diz que não é possível inserir dados, caso eu coloco algo repetido

erro vai no ultimo if, diz que não é possível inserir dados, caso eu coloco algo repetido

boas apos verificação, consi perceber atarves da primeira resposta, das chaves única, eu tinha em todas a colunas UNIQUE = NO!

Edited by oliveira1991

Live for ever

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.