none
Problema na migração de sql server 2005 para sql express 2005 RRS feed

  • Pergunta

  •  

    estou criando uma aplicação windows form utilizando o sql server 2005, depois optei para mudar para o sql express 2005

    estou utilizando dataset tipado usando os comandos getdata(),insert etc,

    criei o banco tudo certinho, porem quando eu faço uma inserção de dados estes chegam somente ao dataset até sendo exibidos no grid da aplicação mas quando eu abro o banco não gravou nada ja tentei um monte de coisas alguem ja passou por isso ou tem uma ideia de como eu posso resolver este problema?

     so pra resumir ai os dados são gravados no data set mas não são gravados no banco.
    quarta-feira, 20 de agosto de 2008 12:35

Todas as Respostas

  • Você fez usando assistente ou direto no código? Por acaso não faltou chamar o Update() do DataAdapter?

    quarta-feira, 20 de agosto de 2008 20:23
  • assistente não esqueci não o programa funcionava perfeitamente no sql server mas por questão de portabilidade eu mudei para o express e os dados so vão até o data set não chegam no banco. ja fiz de tudo e não consigo colocar funcionando

     

    quinta-feira, 21 de agosto de 2008 10:39
  • Isso é bem estranho, pois do ponto de vista da aplicação, não faria diferença qualquer que fosse a versão do SQL 2005 usada.

    Provavelmente, é algum problema de configuração na sua instalação do Express (authentication, direitos, .....)

    quinta-feira, 21 de agosto de 2008 11:54
  • na verdadade problema na instação acho pouco provavel pq o express foi instalado junto com o visual studio 2005

    quanto a permições eu nem sei como q olha mas tb acho dificil de ser isso, pq se eu for lá na tabela e pedir uma new query consigo inserir os registros na mão normalmente o problema ta entre o infeliz do data set com o banco!!

     

    quinta-feira, 21 de agosto de 2008 12:49
  • Filipi, dá uma debugada aí e tentar ver qual é o RowState da linha que você está tentando inserir. E vê também o valor do InsertCommand do DataAdapter.

    quinta-feira, 21 de agosto de 2008 13:41
  • na verdade eu sou novo com a plataforma .net não tenho ideia de como olha isso ai como que eu olho isso??

     

    quinta-feira, 21 de agosto de 2008 14:32
  • eu tentei criar outra aplicação simples para gravar apenas  um campo no banco e o problema continua,

    grava no data set("memoria") mas não lança no banco.

    abaixo segue a forma que to fazendo

     

     

    //using no table adapter

    using Controle_de_Custos.controle_de_custosTableAdapters;


    //declarando o data table e o table adapter

     public controle_de_custos.tb_controle_custosDataTable data_table;
     public tb_controle_custosTableAdapter table_adapter;

     

    //evento do botão cadastrar

    private void bt_cadastrar_Click(object sender, EventArgs e)
            {
                    table_adapter = new tb_controle_custosTableAdapter();
                    table_adapter.Insert(parametros para gravar no banco);

    limpa_campos_inserir();
    exibir_grid()

     

            }

     

    quinta-feira, 21 de agosto de 2008 14:49
  • Alguns detalhes:

    - o fato de você conseguir executar DML´s diretamente não siginifica que você esteja com as mesmas permissões. Pode ser que no SQL você esteja entrando com SA, que tem direito total. Ou ainda pode ser que você esteja usando windows authentication no SQL e o usuário na string de conexão seja outro.

    - o fato de você ter instalado o express junto com o full implica na criação de instância onde você tem definir nomeistancia\nomeservidor na conexão.

     

    Lúcio

    quinta-feira, 21 de agosto de 2008 17:08
  •  Lúcio S Suizu (ItLab) wrote:

    Alguns detalhes:

    - o fato de você conseguir executar DML´s diretamente não siginifica que você esteja com as mesmas permissões. Pode ser que no SQL você esteja entrando com SA, que tem direito total. Ou ainda pode ser que você esteja usando windows authentication no SQL e o usuário na string de conexão seja outro.

    - o fato de você ter instalado o express junto com o full implica na criação de instância onde você tem definir nomeistancia\nomeservidor na conexão.

     

    Lúcio

     

    Isso é verdade. Se você estiver com as duas versões instaladas e não tiver especificado o \EXPRESS na string de conexão ele pode estar jogando no banco antigo.
    quinta-feira, 21 de agosto de 2008 17:50
  • olha eu tava desenvolvendo com sql server no trampo

     

    ai levei pra casa tinha acabado de instalar o visual studio 2005,que se não me engano não vem com o sql server e sim com o sql server express!!!!!

     

    blz la em casa obviamente não tava funcionando ai eu deletei tudo que tinha no programa referente ao banco e o data set que eu tava usando no serviço, ai fui lá em adicionar novo item com botão direito em cima do projeto e adicionei um novo arquivo mdf, inseri os campos de acordo com o outro banco e criei outro data set apartir do banco novo e recompilei o programa sem problemas ao abrir tudo inseria normalmente mas so na memoria nada grava no banco,

    conferi aquelas opções Copy if Never al copy tentei todas possiveis tanto para o banco quanto para o data set e não funciona nem F*****

    acredito que ao criar novo banco mdf e novo dataset a string de conexão deve ou pelo menos deveria ter sido recriado certo.

    sexta-feira, 22 de agosto de 2008 11:00
  • Acho que o jeito vai ser fazer um trigger pra ver se o banco está recebendo o INSERT. Só pra ver mesmo, porque, pelo que você diz, não tem nada de errado.
    sexta-feira, 22 de agosto de 2008 17:26
  • Para resolver o problema eu recriei outro projetodo 0 e copei aspectos do form para o novo projeto copiei a logica e refiz toda a parte de conexão so funcionou partindo do 0 de novo.

     

    segunda-feira, 1 de setembro de 2008 12:40