Usuário com melhor resposta
DataSet Tipado

Pergunta
-
dae pessoal.. criei um dataset "VotacaoDataSet.xsd" e um metodo "InsertQuery" e estou acessando via código.
Code SnippetVotacao.VotacaoDataSetTableAdapters.
VotacaoTableAdapter objVotacao = new Votacao.VotacaoDataSetTableAdapters.VotacaoTableAdapter();objVotacao.InsertQuery(txtPergunta.Text, 0, 0, System.
DateTime.Now); MessageBox.Show("Registro Gravado com Sucesso!");O problema é que não da erro, mas também não grava no banco de dados.
Respostas
-
Oi !
Como eu desconfiava...
Gerado pelo VS ? Em algum ponto algo foi feito diferente, pois você está utilizando dentro de uma aplicação windows uma string de conexão típica de aplicação web, eu ainda não consegui descobrir a sequencia de passos que faz isso ser tão frequente com tantos desenvolvedores...
Você colocou seu .MDB dentro de um diretório chamado App_Data, em seu projeto. Então o visual studio utilizou, para gerar a string de conexão, a variável |DataDirectory| .
Ele usou essa variável porque a pasta App_Data é especial e ele a trata de forma especial. Quando você roda seu projeto, ele copia a pasta App_Data certamente para dentro de bin\release .
O resultado, é que quando você abre seu banco para verificar se algo foi gravado (abre o banco da app_data), dá a impressão de que nada foi gravado. Porém os dados foram gravados, mas na cópia do banco que foi copiada para o diretório app_data no release e não no .mdb original que está dentro do projeto.
Seu código certamente está funcionando, você apenas está procurando os dados no banco errado.
Para acabar de vez com esse problema : coloque o caminho completo do banco (c:\...) na string de conexão, ao invés da variável |DataDirectory|
[]'s
Todas as Respostas
-
-
-
-
Code Snippet
<?
xml version="1.0" encoding="utf-8" ?><
configuration><
configSections></
configSections><
connectionStrings><
add name="Votacao.Properties.Settings.VotacaoConnectionString" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\Votacao.mdb;Persist Security Info=True" providerName="System.Data.OleDb" /></
connectionStrings></
configuration> -
Oi !
Como eu desconfiava...
Gerado pelo VS ? Em algum ponto algo foi feito diferente, pois você está utilizando dentro de uma aplicação windows uma string de conexão típica de aplicação web, eu ainda não consegui descobrir a sequencia de passos que faz isso ser tão frequente com tantos desenvolvedores...
Você colocou seu .MDB dentro de um diretório chamado App_Data, em seu projeto. Então o visual studio utilizou, para gerar a string de conexão, a variável |DataDirectory| .
Ele usou essa variável porque a pasta App_Data é especial e ele a trata de forma especial. Quando você roda seu projeto, ele copia a pasta App_Data certamente para dentro de bin\release .
O resultado, é que quando você abre seu banco para verificar se algo foi gravado (abre o banco da app_data), dá a impressão de que nada foi gravado. Porém os dados foram gravados, mas na cópia do banco que foi copiada para o diretório app_data no release e não no .mdb original que está dentro do projeto.
Seu código certamente está funcionando, você apenas está procurando os dados no banco errado.
Para acabar de vez com esse problema : coloque o caminho completo do banco (c:\...) na string de conexão, ao invés da variável |DataDirectory|
[]'s
-