Jump to content

Recommended Posts

Posted

Olá a todos!

estou a fazer um projecto em vb2005 com a bd em access.

O meu projecto é uma gestao de uma colecção de moedas, e pretendo adicionar, editar, eliminar dados da bd.

o codigo que estou a utilizar é o seguinte:

Dim dbConn As OleDb.OleDbConnection = New OleDb.OleDbConnection()

        dbConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\tmn\Documents\Visual Studio 2005\Projects\Testing\Testing\moedas.mdb ;"

        Dim strQuery As String = "INSERT INTO gescoin (País, Ano, Valor, Estado,Época,Tipo,Valven,Metal,Repetidas,Observações) VALUES(@País, @Ano, @Valor,@Estado,@Época,Tipo,@Valven,@Metal,@Repetidas,@Observações)"

        Dim dbCmd As OleDb.OleDbCommand = New OleDb.OleDbCommand(strQuery, dbConn)

        dbCmd.Parameters.AddWithValue("@País", pais.Text)

        dbCmd.Parameters.AddWithValue("@Ano", ano.Text)

        dbCmd.Parameters.AddWithValue("@Valor", valor.Text)

        dbCmd.Parameters.AddWithValue("@Estado", estado.Text)

        dbCmd.Parameters.AddWithValue("@Época", epoca.Text)

        dbCmd.Parameters.AddWithValue("@Tipo", tipo.Text)

        dbCmd.Parameters.AddWithValue("@Valven", valven.Text)

        dbCmd.Parameters.AddWithValue("@Metal", metal.Text)

        dbCmd.Parameters.AddWithValue("@Repetidas", repetidas.Text)

        dbCmd.Parameters.AddWithValue("@Observações", obser.Text)

        dbConn.Open()

        dbCmd.ExecuteNonQuery()

        dbCmd = Nothing

ja consigo adicionar, mas queria adicionar uma foto juntamente com os dadps inseridos, mas não sei como fazer! ja consigo fazer o upload da foto mas so me falta guardar a foto juntamente com os dados. Será possivel me ajudarem nesta questão??

Como também é objectivo do meu projecto adicionar/editar dados como é que faço para editar/eliminar os dados utilizando o OLEDB???

conto com a vossa ajuda!! Obrigado

Abraços e boas programações

Posted

ja consigo adicionar, mas queria adicionar uma foto juntamente com os dadps inseridos, mas não sei como fazer! ja consigo fazer o upload da foto mas so me falta guardar a foto juntamente com os dados. Será possivel me ajudarem nesta questão??

Guardar imagens em Access não é uma boa ideia (embora possas o fazer). Porque não guardar antes o endereço para a imagem e copias (se necessário) o ficheiro para uma pasta especifica ?

Como também é objectivo do meu projecto adicionar/editar dados como é que faço para editar/eliminar os dados utilizando o OLEDB???

O código é muito semelhante e o que muda apenas é o cmmando T-SQL ... por exemplo

"UPDATE INTO tabela SET campo1 = ? WHERE ID = ?"

"DELETE FROM tabela WHERE ID = ?"

Posted

pois o endereço podia ser mas tem que ser feito automaticamente, uma vez que, são moedas de fotos e deve ser o utilizador a fazer o upload das mesmas e não ser eu a colocar as fotos numa pasta e colocar o endereço das mesmas em access. Será possivel escolher uma foto e o programa guardar o caminho dela em access?

quanto ao código que me deu não tive resultados, nao sei se estou a fazer de forma correcta

Codigo delete:

Dim dbConn As OleDb.OleDbConnection = New OleDb.OleDbConnection()

        dbConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\tmn\Documents\Visual Studio 2005\Projects\Testing\Testing\moedas.mdb ;"

       

Dim strQuery As String = " DELETE FROM gescoin WHERE ID= 'País, Ano, Valor, Estado,Época,Tipo,Valven,Metal,Repetidas,Observações' VALUES(@País, @Ano, @Valor,@Estado,@Época,Tipo,@Valven,@Metal,@Repetidas,@Observações)"

tenho que colocar aquela cena do dbCmd.Parameters??

o que está mal no código??

Posted

O sintaxe continua errado e sugiro que leias estes dois artigos pois o funcionamento geral é muito semelhante.

VB.NET: Gestão de Dados em SQL Server - Parte I

VB.NET: Gestão de Dados em SQL Server - Parte II

Para apagares deves ter um número único (chave primária) e daí referi o ID. Cria lá esse campo e depois só tens de fazer:

Dim strQuery As String = " DELETE FROM gescoin WHERE ID = ?"

Depois, nos parameters, apenas defines o ID do registo a apagar.

Posted

nao percebi muito bem como fazer.

o ID deve ser colocado por mim??

é que se for não deve ser assim, uma vez que ao clicar num botão elimina todos os dados que estão visiveis nas textbox.

Coloco                  Dim strQuery As String = " DELETE FROM gescoin WHERE ID= (neste parametro não sei o que colocar)"

Tenho uma textbox que me diz o ID, mas não sei como fazer 😄 :/

De que maneira é possivel fazer??

  • 2 weeks later...
Posted

        Dim dbConn As OleDb.OleDbConnection = New OleDb.OleDbConnection()

        'Na linha de código a cima é declarado um objecto do tipo oledbconection, que vai permitir depois estabelecer uma conexão à base de dados

        dbConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\F'\Ambiente de trabalho\PAP\Serralharia1\Serralharia\Serralharia.mdb;"

        'String de conexão utilizada para aceder à base de dados, utilizando o provider oledb.

        Dim strQuery As String = "INSERT INTO unidades (cod_unidade, nome_unidade) VALUES(@cod_unidade, @nome_unidade)"

        Dim dbCmd As OleDb.OleDbCommand = New OleDb.OleDbCommand(strQuery, dbConn)

        'O que se pretende fazer, é declarar uma variável do tipo String, onde é colocada a strind do comando SQL e de seguida será criado um objecto do tipo oledbcommand que irá permitir executar o comando SQL.

        dbCmd.Parameters.AddWithValue("@cod_unidade", Cod_unidadeTextBox.Text)

        dbCmd.Parameters.AddWithValue("@nome_unidade", Nome_unidadeTextBox.Text)

        'Parte dos parametros, ou seja, é aqui que se faz a correspondência entre as TextBox ou Combobox e os respectivos campos na tabela onde os dados são inseridos.

        dbConn.Open()

        dbCmd.ExecuteNonQuery()

        dbCmd = Nothing

        'Na primeira linha abre-se a ligaçao com a base de dados e depois executa se o comando

        Try

            MessageBox.Show("Inseriu", "Inseriu", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1)

        Catch ex As Exception

            MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1)

        End Try

tenho este código para inserir dados na base de dados...alguem me sabe dizer o que mudar para adaptar o código permitindo apagar dados da base de dados?

agradecia mt a ajuda.

Se algum dia alguém lhe disser que o teu trabalho não é o de um profissional, lembra-te : Amadores construíram a Arca de Noé e profissionais, o Titanic

Posted

Penso que apenas tens de mudar a tua query... Ou seja, esta linha ficará mais ou menos assim:

Dim strQuery As String = "DELETE FROM unidades WHERE " + nomeColuna + " = '" + dadoPesquisa + "'"

onde em nomeColuna pões o nome da coluna onde vai efectuar a pesquisa do dado a eliminar e em dadoPesquisa será então o dado a eliminar

Posted

obrigada 😉

ent e esta conversa toda nao é preciso mudar nada, ou é só a query que se põe?

        dbCmd.Parameters.AddWithValue("@País", pais.Text)

        dbCmd.Parameters.AddWithValue("@Ano", ano.Text)

        dbCmd.Parameters.AddWithValue("@Valor", valor.Text)

        dbCmd.Parameters.AddWithValue("@Estado", estado.Text)

        dbCmd.Parameters.AddWithValue("@Época", epoca.Text)

        dbCmd.Parameters.AddWithValue("@Tipo", tipo.Text)

        dbCmd.Parameters.AddWithValue("@Valven", valven.Text)

        dbCmd.Parameters.AddWithValue("@Metal", metal.Text)

        dbCmd.Parameters.AddWithValue("@Repetidas", repetidas.Text)

        dbCmd.Parameters.AddWithValue("@Observações", obser.Text)

        dbConn.Open()

        dbCmd.ExecuteNonQuery()

        dbCmd = Nothing

Se algum dia alguém lhe disser que o teu trabalho não é o de um profissional, lembra-te : Amadores construíram a Arca de Noé e profissionais, o Titanic

Posted

"DELETE FROM unidades WHERE " + nomeColuna + " = '" + dadoPesquisa + "'"

ja fiz isto no meu botao só que nao apaga :S

alguem me pode arranjar o codigo todo? é que já inventei bué e nao dá na mesma :/

a minha tabela chama-se unidades e a chave primária é cod_unidade(para o caso de ser necessario)

agradecia...

Se algum dia alguém lhe disser que o teu trabalho não é o de um profissional, lembra-te : Amadores construíram a Arca de Noé e profissionais, o Titanic

Posted

"DELETE FROM unidades WHERE " + nomeColuna + " = '" + dadoPesquisa + "'"

ja fiz isto no meu botao só que nao apaga :S

alguem me pode arranjar o codigo todo? é que já inventei bué e nao dá na mesma :/

a minha tabela chama-se unidades e a chave primária é cod_unidade(para o caso de ser necessario)

agradecia...

Se calhar o porquê de não dar é porque estas a pesquisar com valores numéricos, logo as plicas saem... experimenta:

"DELETE FROM unidades WHERE cod_unidade = "  numdepesquisa

Posted

em numpesquisa ponho cod_unidadetextbox.text?

é a caixa de texto onde se insere a chave primária

eu tenho as caixas de texto "cod_unidade","nome_unidade" e tenho o datagridview respectivo quando selecciono uma linha aparece nas caixas d texto os dados que seleccionei depois clico no botao apagar e nao apaga :s

um questao. só com este código "DELETE FROM unidades WHERE cod_unidade = "  numdepesquisa actualiza a base de dados? nao é preciso fazer connection? ....

Se algum dia alguém lhe disser que o teu trabalho não é o de um profissional, lembra-te : Amadores construíram a Arca de Noé e profissionais, o Titanic

Posted

dá erro de sintaxe :S:S

Se algum dia alguém lhe disser que o teu trabalho não é o de um profissional, lembra-te : Amadores construíram a Arca de Noé e profissionais, o Titanic

Posted

Vamos por partes 🙂

Supostamente tens uma caixa de texto onde aparece o numero da chave primaria... Podemos apagar por aí:

No botão eliminar tira tudo, mesmo tudo eheh e põe só isto:

        Dim dbConn As OleDb.OleDbConnection = New OleDb.OleDbConnection()
        dbConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\F'\Ambiente de trabalho\PAP\Serralharia1\Serralharia\Serralharia.mdb;"

        Dim x As String

        x = "DELETE FROM unidades WHERE cod_unidade = " & cod_unidade.Text

        Dim strQuery As String = x

        Dim dbCmd As OleDb.OleDbCommand = New OleDb.OleDbCommand(strQuery, dbConn)

        dbConn.Open()
        dbCmd.ExecuteNonQuery()

        dbConn.Close()

Isto supondo que a caixa de texto onde aparece o valor do cod_unidade seleccionado na tabela se chama "cod_unidade"... Se não no valor de x muda a caixa de texto...

Vê la se isto dá 🙂

Posted

já consegui  😄

agr apaga na base de dados do access só que no datagrid nao actualiza :/

penso que se resolve com o reload do datagrid mas alguem sabe fazer?:/

Obrigada

Se algum dia alguém lhe disser que o teu trabalho não é o de um profissional, lembra-te : Amadores construíram a Arca de Noé e profissionais, o Titanic

Posted

podes.me dizer como se faz o reload do datagrid? é que vou precisar noutro form...

Se algum dia alguém lhe disser que o teu trabalho não é o de um profissional, lembra-te : Amadores construíram a Arca de Noé e profissionais, o Titanic

Posted

acho que é ligaçao directa :s eu arrasto .

eu precisava de fazer uma actualizaçao ao datagridview porque ao fazer essa actualizaçao os dados que vao aparecer nesse datagridview serao diferentes

Se algum dia alguém lhe disser que o teu trabalho não é o de um profissional, lembra-te : Amadores construíram a Arca de Noé e profissionais, o Titanic

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.