none
Inserir Varios registros RRS feed

  • Pergunta

  • Boa tarde !!!

    Tenho um SQL CE rodando em um smartphone. O Programa do smartphone se conectar em um webservice e recebe um dataset com varios registros. Eu tenho que atualizar esses registros no SQL CE. Estou dando um loop no dataset e adicionando registro por registro, mas esta muito lento. Entao eu pensei em dar o loop montando o script com insercao de até 500 registros e entao executar. Mas o ADO.NET nao esta aceitando. Eu testei no SSMS e funcionou mas na aplicacao nao funciona. O que eu fiz foi separar com ; um insert do outro, assim:

    INSERT Tabela (Campo1, Campo2) VALUES ('Dados1', 'Dados2');
    INSERT Tabela (Campo1, Campo2) VALUES ('Dados1', 'Dados2');
    INSERT Tabela (Campo1, Campo2) VALUES ('Dados1', 'Dados2')


    Alguem me da alguma ideia ??

    Obrigado !!!

    • Movido Gustavo Maia Aguiar quinta-feira, 4 de junho de 2009 23:57 ([Loc]From:SQL Server - Desenvolvimento Geral)
    segunda-feira, 1 de junho de 2009 20:15

Respostas

  • Davi,
    Nunca trabalhei com esta versao de SQL,  mas vc pode ver se este codigo funciona no SQL CE:

    SqlConnection con = new SqlConnection(@"Minha Conexao");
    //A tabela que recebera os registros
    SqlCommand cmd = new SqlCommand("select * from tb_Teste", con);
    SqlDataAdapter da = new SqlDataAdapter(cmd);
    SqlCommandBuilder cb = new SqlCommandBuilder(da);

    //Seu DataSet vindo do Web Service
    DataSet ds = new DataSet();

    //Na minha aplicao carregei o DataSet com dados XML
    //ds.ReadXml(new StringReader("<dados><tb_Teste id=\"10\" descricao=\"valor zz\"/><tb_Teste id=\"11\" descricao=\"valor yy\"/></dados>"));

    //Definindo de que tabela do DataSet vc copiara os registros
    //IMPORTANTE: Os Nomes dos Campos no DataTable e da Sua Tabela destino devem ser iguais
    //Neste exemplo: Id de descricao
    DataTable dt = ds.Tables[0];
    da.Update(dt);

    quarta-feira, 3 de junho de 2009 18:13

Todas as Respostas

  • Davi,
    Nunca trabalhei com esta versao de SQL,  mas vc pode ver se este codigo funciona no SQL CE:

    SqlConnection con = new SqlConnection(@"Minha Conexao");
    //A tabela que recebera os registros
    SqlCommand cmd = new SqlCommand("select * from tb_Teste", con);
    SqlDataAdapter da = new SqlDataAdapter(cmd);
    SqlCommandBuilder cb = new SqlCommandBuilder(da);

    //Seu DataSet vindo do Web Service
    DataSet ds = new DataSet();

    //Na minha aplicao carregei o DataSet com dados XML
    //ds.ReadXml(new StringReader("<dados><tb_Teste id=\"10\" descricao=\"valor zz\"/><tb_Teste id=\"11\" descricao=\"valor yy\"/></dados>"));

    //Definindo de que tabela do DataSet vc copiara os registros
    //IMPORTANTE: Os Nomes dos Campos no DataTable e da Sua Tabela destino devem ser iguais
    //Neste exemplo: Id de descricao
    DataTable dt = ds.Tables[0];
    da.Update(dt);

    quarta-feira, 3 de junho de 2009 18:13
  • F1rm1no,

    Você realizou algum teste?


    Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA
    sexta-feira, 5 de junho de 2009 18:07
    Moderador