none
Problema com Update no CommandBuilder RRS feed

  • Pergunta

  •  

    Prezados,

     

    Estou com um problema ao tentar atualizar um banco SqlServer com os dados do meu DataSet.

     

    Ocorre a seguinte mensagem do SqlCommandBuilder:

     

    Não há suporte para geração SQL dinâmica para UpdateCommand em SelectCommand que não retorne informações importantes de coluna.

     

    Segue abaixo parte do meu código:

     

    Code Block

    sSql = ""

    sSql = sSql & "SELECT * FROM db_teste_cargas..xgp_carga_ativo_fixo_" & aEmpresa & " "

    da = New SqlDataAdapter(sSql, cnn)

    da.Fill(ds, 0)

     

    For J = 0 To ds.Tables(0).Rows.Count - 1

     

    sSql = ""

    sSql = sSql & "SELECT TOP 1 Empresa "

    sSql = sSql & ",Num_int "

    sSql = sSql & ",Unidade "

    sSql = sSql & ",C_Custo "

    sSql = sSql & ",Periodo "

    sSql = sSql & ",Valor_cor "

    sSql = sSql & ",Depr_acum "

    sSql = sSql & ",Deprec_per "

    sSql = sSql & "FROM db_sicof..atv105 "

    sSql = sSql & "WHERE Empresa = '" & Trim(aEmpresa) & "' "

    sSql = sSql & "AND C_Custo = '" & Trim(ds.Tables(0).Rows(J).Item("Centro_Custo1")) & "' "

    sSql = sSql & "AND num_int = '" & Trim(ds.Tables(0).Rows(J).Item("num_int")) & "' "

    sSql = sSql & "AND periodo = '200709' "

    sSql = sSql & "ORDER BY Periodo DESC "

     

     

     

    Code Block

    da2 = New SqlDataAdapter(sSql, cnn2)

    da2.Fill(ds, 1)

     

    sValor_cor = Trim(ds.Tables(1).Rows(k).Item("Valor_cor"))

    sDepr_acum = Trim(ds.Tables(1).Rows(k).Item("depr_acum"))

    sDeprec_per = Trim(ds.Tables(1).Rows(k).Item("Deprec_per"))

     

     

     

    ds.Tables(0).Rows(J).Item("Reserva") = Trim(sDepr_acum)

    ds.Tables(0).Rows(J).Item("DEPRECIACAO_MES") = Trim(sDeprec_per)

    ds.Tables(0).Rows(J).Item("CUSTO_ATUAL") = Trim(sValor_cor)

    ds.Tables(0).Rows(J).Item("QTDE_MES_DEPREC") = Trim(sQtde_Mes_Deprec)

     

     

    Dim cmdBuilder As New SqlCommandBuilder(da)

    da.Update(ds, "0")

     

     

     

    Se alguem já tiver passado pela experiência ficarei grato pela ajuda.

     

    Abraços

     

    terça-feira, 27 de novembro de 2007 18:56

Respostas

  • Boa Noite pessoal.

     

    Eu consegui identificar o problema, não havia erro no código, o detalhe é que deve existir uma PK na tabela para o .net gerenciar a transação.

    Criei a PK e funcionou.

     

    Abraços

    • Marcado como Resposta Alexandre.NET quarta-feira, 20 de janeiro de 2010 12:10
    quinta-feira, 29 de novembro de 2007 22:35

Todas as Respostas