Jump to content
FabioGuerreiro

[AJUDA] Base de dados

Recommended Posts

FabioGuerreiro

Boa tarde, estou no 3º ano do curso Gestão e Programação de sistemas Informáticos, e estou a desenvolver o projecto final da disciplina Programação de Sistemas Informáticos.

O projecto tem como objectivo ser um gestor de biblioteca com:

  • Adicionar Livro (com opção de adicionar Categoria)
  • Editar Livro
  • Apagar Livro
  • Aluguer (com opções de alugar e entregar

As dúvidas:

  • Como posso alterar um campo da tabela?
  • Como posso por o caminho da minha base de dados fixo mesmo quando for passar o programa para execútavel

Imports System.Data.OleDb

Public Class Alugar
   Private a As OleDbDataAdapter
   Private s As DataSet


'Código para o aluguer

Naluno = nomealuno.Text
       Taluno = turmaluno.Text
       Ialuno = idadealuno.Text
       Aaluno = ComboBox2.Text

       b = 0
       While b <> BDbibliotecaDataSet.Tables("Livros").Rows.Count
           If BDbibliotecaDataSet.Tables("Livros").Rows(b).Item("Titulo") = ComboBox1.Text Then
               contador = BDbibliotecaDataSet.Tables("Livros").Rows(b).Item("N_Requisitado")
               contador = contador + 1
               'BDbibliotecaDataSet.Tables("Livros").Rows(b).Item("Requisitado") = 1
               'BDbibliotecaDataSet.Tables("Livros").Rows(b).Item("N_Requisitado") = contador
           End If
           b = b + 1
       End While


       Try
           Dim connString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\PROJECTOPSIULTIMO - Cópia\FinalProject\BDbiblioteca.mdb;"
           'Dim connstring As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application.StartupPath & "\BDbiblioteca.mdb"


           Dim SQL As String = "INSERT INTO Aluno ([Nome],[Turma],Idade,Ano) VALUES (?,?,?,?)"
           Dim SQL1 As String = "UPDATE Livros SET [N_Requisitado] = @contador,[Requisitado] = @1 WHERE [Titulo] = @combobox1.text"


           ' Inicia uma ligação à base de dados"

           Using connection As New OleDbConnection(connString)
               ' Define o comando e os parâmetros
               Dim command As New OleDbCommand(SQL, connection)
               command.Parameters.Add("Nome", OleDbType.VarChar).Value = Naluno
               command.Parameters.Add("Turma", OleDbType.VarChar).Value = Taluno
               command.Parameters.Add("Idade", OleDbType.Integer).Value = Ialuno
               command.Parameters.Add("Ano", OleDbType.Integer).Value = Aaluno

               Dim command1 As New OleDbCommand(SQL1, connection)
               command1.Parameters.Add("N_Requisitado", OleDbType.Integer).Value = contador
               command1.Parameters.Add("Requisitado", OleDbType.Integer).Value = 1
               ' Abre a ligação e insere o registo
               connection.Open()
               Dim x As Integer = command.ExecuteNonQuery()
               If x <> 1 Then
                   Throw New ArgumentException("Não foi possível inserir o registo na base de dados!")
               Else : MessageBox.Show(" Livro Alugado ")

               End If
           End Using

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

       End Try

Obrigado, desculpem se o código for muito confuso.

Share this post


Link to post
Share on other sites
ribeiro55

Olá FABIOGUERREIRO (para quê as maiúsculas?), bem-vindo.

As dúvidas:

  • Como posso alterar um campo da tabela?

Através do comando "UPDATE", como já tens aí no teu código, consegues alterar um registo.

Através do comando "ALTER TABLE" consegues fazer alterações à estrutura da tabela.

As dúvidas:

  • Como posso por o caminho da minha base de dados fixo mesmo quando for passar o programa para execútavel

My.Application.Info.DirectoryPath devolve-te o directório a partir de onde o executável está a correr.

Se a tua base de dados se chamar "BDbiblioteca.mdb", como no teu código, basta:

Dim connString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & My.Application.Info.DirectoryPath & "\BDbiblioteca.mdb;"

Só tens de garantir que a base de dados está no mesmo sítio onde o teu executável está.

NOTA: Em debug, o executável que está a correr encontra-se em bin\Debug


Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Share this post


Link to post
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.