ERRO COM XML
Olá
Eu estou com um xml com essa estrutura:
<?xml version=[Ô]1.0[Ô] standalone=[Ô]yes[Ô]?>
<Contato>
<contato>
<Nome>João</Nome>
<Sobrenome>Silva</Sobrenome>
</contato>
<contato>
<Nome>Maria</Nome>
<Sobrenome>Leite</Sobrenome>
</contato>
<contato>
<Nome>Tecla</Nome>
<Sobrenome>VBMania</Sobrenome>
</contato>
<contato>
<Nome>Alex</Nome>
<Sobrenome>Passos</Sobrenome>
</contato>
</Contato>
Estou querendo fazer um programa simples e queria utilizar o xml como banco de dados.
Eu quero adicionar mas tabelas nesse xml... só que já tentei e dar erro.
como ficaria essa estrura ai com por exemplo uma tabela de usuários.
Ou tenho que criar um xml pra cada tabela do meu sistema.
Eu estou com um xml com essa estrutura:
<?xml version=[Ô]1.0[Ô] standalone=[Ô]yes[Ô]?>
<Contato>
<contato>
<Nome>João</Nome>
<Sobrenome>Silva</Sobrenome>
</contato>
<contato>
<Nome>Maria</Nome>
<Sobrenome>Leite</Sobrenome>
</contato>
<contato>
<Nome>Tecla</Nome>
<Sobrenome>VBMania</Sobrenome>
</contato>
<contato>
<Nome>Alex</Nome>
<Sobrenome>Passos</Sobrenome>
</contato>
</Contato>
Estou querendo fazer um programa simples e queria utilizar o xml como banco de dados.
Eu quero adicionar mas tabelas nesse xml... só que já tentei e dar erro.
como ficaria essa estrura ai com por exemplo uma tabela de usuários.
Ou tenho que criar um xml pra cada tabela do meu sistema.
primeiro carregue o xml em um data set assim:
dsContato.ReadXml([Ô]C:\TblContato.xml[Ô])
depois adicione registros em um data set assim:
dsContato.Tables(0).Rows.Add(New Object() {txtNome.Text, txtSobrenome.Text})
depois salve o xml assim:
dsContato.WriteXmlSchema([Ô]C:\TblContato.xml[Ô])
dsContato.WriteXml([Ô]C:\TblContato.xml[Ô])
eu fiz um sisteminha que precisava usar xml como banco de dados e isso me atendeu muito bem
qualquer duvida posta aÃ
dsContato.ReadXml([Ô]C:\TblContato.xml[Ô])
depois adicione registros em um data set assim:
dsContato.Tables(0).Rows.Add(New Object() {txtNome.Text, txtSobrenome.Text})
depois salve o xml assim:
dsContato.WriteXmlSchema([Ô]C:\TblContato.xml[Ô])
dsContato.WriteXml([Ô]C:\TblContato.xml[Ô])
eu fiz um sisteminha que precisava usar xml como banco de dados e isso me atendeu muito bem
qualquer duvida posta aÃ
O código eu tenho... até peguei um exemplo aqui no vbmania que utiliza o xml como banco de dados.... só que ele esta com essa estrutura que falei.... e quando tento adicionar uma nova tabela dar erro. tentei colocar assim
<?xml version=[Ô]1.0[Ô] standalone=[Ô]yes[Ô]?>
<Contato>
<contato>
<Nome>João</Nome>
<Sobrenome>Silva</Sobrenome>
</contato>
<contato>
<Nome>Maria</Nome>
<Sobrenome>Leite</Sobrenome>
</contato>
<contato>
<Nome>Tecla</Nome>
<Sobrenome>VBMania</Sobrenome>
</contato>
<contato>
<Nome>Alex</Nome>
<Sobrenome>Passos</Sobrenome>
</contato>
<usuario>
</usuario
</Contato>
<?xml version=[Ô]1.0[Ô] standalone=[Ô]yes[Ô]?>
<Contato>
<contato>
<Nome>João</Nome>
<Sobrenome>Silva</Sobrenome>
</contato>
<contato>
<Nome>Maria</Nome>
<Sobrenome>Leite</Sobrenome>
</contato>
<contato>
<Nome>Tecla</Nome>
<Sobrenome>VBMania</Sobrenome>
</contato>
<contato>
<Nome>Alex</Nome>
<Sobrenome>Passos</Sobrenome>
</contato>
<usuario>
</usuario
</Contato>
fica mais facil se voce utilizar o DataSet
para voce criar mais uma tabela no DataSet ficaria assim
ds.Tables.Add([Ô]Usuario[Ô])
para adicionar colunas:
ds.Tables([Ô]Usuario[Ô]).Columns.Add([Ô]Nome[Ô])
ds.Tables([Ô]Usuario[Ô]).Columns.Add([Ô]Senha[Ô])
para adicionar linhas:
ds.Tables([Ô]Usuario[Ô]).Rows.Add(New Object() {[Ô]Joao[Ô],[Ô]123456[Ô]})
ds.Tables([Ô]Usuario[Ô]).Rows.Add(New Object() {[Ô]Maria[Ô],[Ô]654321[Ô]})
salva o xml como mostrei acima e a estrutura do xml ficaria assim:
<?xml version=[Ô]1.0[Ô] standalone=[Ô]yes[Ô]?>
<Contato>
<contato>
<Nome>João</Nome>
<Sobrenome>Silva</Sobrenome>
</contato>
<contato>
<Nome>Maria</Nome>
<Sobrenome>Leite</Sobrenome>
</contato>
<contato>
<Nome>Tecla</Nome>
<Sobrenome>VBMania</Sobrenome>
</contato>
<contato>
<Nome>Alex</Nome>
<Sobrenome>Passos</Sobrenome>
</contato>
<table>
<usuario>
<Nome>Joao</Nome>
<Senha>123456</Senha>
</usuario
<usuario>
<Nome>Joao</Nome>
<Senha>123456</Senha>
</usuario
</table>
</Contato>
é + ou - isso
para voce criar mais uma tabela no DataSet ficaria assim
ds.Tables.Add([Ô]Usuario[Ô])
para adicionar colunas:
ds.Tables([Ô]Usuario[Ô]).Columns.Add([Ô]Nome[Ô])
ds.Tables([Ô]Usuario[Ô]).Columns.Add([Ô]Senha[Ô])
para adicionar linhas:
ds.Tables([Ô]Usuario[Ô]).Rows.Add(New Object() {[Ô]Joao[Ô],[Ô]123456[Ô]})
ds.Tables([Ô]Usuario[Ô]).Rows.Add(New Object() {[Ô]Maria[Ô],[Ô]654321[Ô]})
salva o xml como mostrei acima e a estrutura do xml ficaria assim:
<?xml version=[Ô]1.0[Ô] standalone=[Ô]yes[Ô]?>
<Contato>
<contato>
<Nome>João</Nome>
<Sobrenome>Silva</Sobrenome>
</contato>
<contato>
<Nome>Maria</Nome>
<Sobrenome>Leite</Sobrenome>
</contato>
<contato>
<Nome>Tecla</Nome>
<Sobrenome>VBMania</Sobrenome>
</contato>
<contato>
<Nome>Alex</Nome>
<Sobrenome>Passos</Sobrenome>
</contato>
<table>
<usuario>
<Nome>Joao</Nome>
<Senha>123456</Senha>
</usuario
<usuario>
<Nome>Joao</Nome>
<Senha>123456</Senha>
</usuario
</table>
</Contato>
é + ou - isso
lembrando que voce nao pode colocar acentos nem caracteres especias em xml como por exemplo o João, tem que ficar Joao
certo... vou tentar fazer desse jeito que vc falou.
Correção o xml ficaria assim com duas tabelas juntas:
<?xml version=[Ô]1.0[Ô] standalone=[Ô]yes[Ô]?>
<Contato>
<contato>
<Nome>Joao</Nome>
<Sobrenome>Silva</Sobrenome>
</contato>
<contato>
<Nome>Maria</Nome>
<Sobrenome>Leite</Sobrenome>
</contato>
<contato>
<Nome>Tecla</Nome>
<Sobrenome>VBMania</Sobrenome>
</contato>
<contato>
<Nome>Alex</Nome>
<Sobrenome>Passos</Sobrenome>
</contato>
<Usuario>
<Nome>Joao</Nome>
<Senha>123456</Senha>
</Usuario>
<Usuario>
<Nome>Maria</Nome>
<Senha>654321</Senha>
</Usuario>
</Contato>
<?xml version=[Ô]1.0[Ô] standalone=[Ô]yes[Ô]?>
<Contato>
<contato>
<Nome>Joao</Nome>
<Sobrenome>Silva</Sobrenome>
</contato>
<contato>
<Nome>Maria</Nome>
<Sobrenome>Leite</Sobrenome>
</contato>
<contato>
<Nome>Tecla</Nome>
<Sobrenome>VBMania</Sobrenome>
</contato>
<contato>
<Nome>Alex</Nome>
<Sobrenome>Passos</Sobrenome>
</contato>
<Usuario>
<Nome>Joao</Nome>
<Senha>123456</Senha>
</Usuario>
<Usuario>
<Nome>Maria</Nome>
<Senha>654321</Senha>
</Usuario>
</Contato>
Olá Killer
Eu conseguir cadastrar.... mas não estou conseguindo fazer o alterar e o excluir um item especÃfico.....
Como faço localizar o registro que quero alterar ou excluir no xml?
Eu conseguir cadastrar.... mas não estou conseguindo fazer o alterar e o excluir um item especÃfico.....
Como faço localizar o registro que quero alterar ou excluir no xml?
se estiver usando o data set faça assim para alterar
ds.Tables([Ô]Usuario[Ô]).rows(linha).Item([Ô]Nome[Ô]) = txtNome.Text
Tables([Ô][Ô]) = Tabela a ser alterada
rows() = A linha onde esta o item a ser alterado
Item([Ô][Ô]) = A coluna onde esta o Item a ser alterado
ds.Tables([Ô]Usuario[Ô]).rows(linha).Item([Ô]Nome[Ô]) = txtNome.Text
Tables([Ô][Ô]) = Tabela a ser alterada
rows() = A linha onde esta o item a ser alterado
Item([Ô][Ô]) = A coluna onde esta o Item a ser alterado
Não conseguir entender direito.... essa linha que vc colocou entendi... não entendi depois como fica....
eu estou fazendo assim pra cadastrar.
Dim dSet As New DataSet
Dim dTable As New DataTable
dSet.ReadXml(My.Application.Info.DirectoryPath.Replace([Ô]bin\Debug[Ô], [Ô][Ô]) & [Ô]banco/banco.xml[Ô])
dSet.Dispose()
dTable = dSet.Tables([Ô]usuario[Ô])
Dim linha As DataRow
linha = dTable.NewRow
linha([Ô]cod[Ô]) = txtCod.Text
linha([Ô]nome[Ô]) = txtNome.Text
linha([Ô]senha[Ô]) = txtSenha.Text
dTable.Rows.Add(linha)
dSet.WriteXml(My.Application.Info.DirectoryPath.Replace([Ô]bin\Debug[Ô], [Ô][Ô]) & [Ô]banco/banco.xml[Ô])
isso esta funcionando pra cadastrar.... como ficar ai com essa linha que vc colocou pra alterar e excluir
obrigado
eu estou fazendo assim pra cadastrar.
Dim dSet As New DataSet
Dim dTable As New DataTable
dSet.ReadXml(My.Application.Info.DirectoryPath.Replace([Ô]bin\Debug[Ô], [Ô][Ô]) & [Ô]banco/banco.xml[Ô])
dSet.Dispose()
dTable = dSet.Tables([Ô]usuario[Ô])
Dim linha As DataRow
linha = dTable.NewRow
linha([Ô]cod[Ô]) = txtCod.Text
linha([Ô]nome[Ô]) = txtNome.Text
linha([Ô]senha[Ô]) = txtSenha.Text
dTable.Rows.Add(linha)
dSet.WriteXml(My.Application.Info.DirectoryPath.Replace([Ô]bin\Debug[Ô], [Ô][Ô]) & [Ô]banco/banco.xml[Ô])
isso esta funcionando pra cadastrar.... como ficar ai com essa linha que vc colocou pra alterar e excluir
obrigado
para alterar a linha 5 do dataset por exemplo
dSet.Tables([Ô]usuario[Ô]).rows(4).Item([Ô]nome[Ô]) = txtNome.Text
para alterar ou excluir ou ate mesmo para cadastrar, voce não precisa desmembrar o data set em tabelas e em linhas,
para cadastrar eu concordo porque fica mais facil o entendimento
cadastrar eu faço assim
dSet.Tables([Ô]usuario[Ô]).rows.add(New Object{} (txtCod.Text, txtNome.text, txtSenha.text))
alterar
dSet.Tables([Ô]usuario[Ô]).rows(4).Item([Ô]cod[Ô]) = txtCod.Text
dSet.Tables([Ô]usuario[Ô]).rows(4).Item([Ô]nome[Ô]) = txtNome.Text
dSet.Tables([Ô]usuario[Ô]).rows(4).Item([Ô]senha[Ô]) = txtSenha.Text
excluir
dSet.Tables([Ô]usuario[Ô]).rows(4).Delete
depois é so salvar o dataset em xml
dSet.Tables([Ô]usuario[Ô]).rows(4).Item([Ô]nome[Ô]) = txtNome.Text
para alterar ou excluir ou ate mesmo para cadastrar, voce não precisa desmembrar o data set em tabelas e em linhas,
para cadastrar eu concordo porque fica mais facil o entendimento
cadastrar eu faço assim
dSet.Tables([Ô]usuario[Ô]).rows.add(New Object{} (txtCod.Text, txtNome.text, txtSenha.text))
alterar
dSet.Tables([Ô]usuario[Ô]).rows(4).Item([Ô]cod[Ô]) = txtCod.Text
dSet.Tables([Ô]usuario[Ô]).rows(4).Item([Ô]nome[Ô]) = txtNome.Text
dSet.Tables([Ô]usuario[Ô]).rows(4).Item([Ô]senha[Ô]) = txtSenha.Text
excluir
dSet.Tables([Ô]usuario[Ô]).rows(4).Delete
depois é so salvar o dataset em xml
Tópico encerrado , respostas não são mais permitidas