none
DataTable mudando o tipo de Coluna RRS feed

  • Pergunta

  • Boa tarde a todos.

    Criei um DataTable via code behind e quando uma colunar o valor é igual a 0 vou colocar o texto "consulte-nos"

    Como estou utilizando o report da DevExpress, achei que seria mais fácil fazer essa edição direto no DataTable.

    ex. Resumido do código:

    DataTable dt = new DataTable("ListagemImoveis");
                dt.Load(QDR.ExecuteSTP(Stp_Name, cmd.Parameters));
    
     for (int i = 0; i < dt.Rows.Count; i++)
                {
                    DataRow dr;
                    dr = dt.Rows[i];
                    if (Convert.ToInt32(dr.ItemArray[1]) == 0) 
                    {
                  
    //se eu colocar o valor 1234124 ele aceita, porém string não                
                        dr["curValor"] = "consulte-nos";
                        
                        dt.AcceptChanges();
                    }
    }

    Acabei até mudando a stored procedure no MS SQL para retornar o campo como Varchar mas não adiantou..

    Então deve ter algo de errado..

    --códigos da Stored Procedure...
    SELECT cast(tbl_imoveis.curValor as varchar) curValor
    from...

    alguém tem alguma idéia?


    • Editado ASPX_BR quinta-feira, 13 de fevereiro de 2014 16:15
    quinta-feira, 13 de fevereiro de 2014 14:47

Todas as Respostas

  • Para quem tiver a mesma dúvida: segue a solução

    DataTable dt = new DataTable("ListagemImoveis");
    dt.Load(QDR.ExecuteSTP(StoredProcedure, cmd.Parameters));
    
    
    for (int i = 0; i < dt.Rows.Count; i++)
                {
                    DataRow dr;
                    dr = dt.Rows[i];
                    if (Convert.ToInt32(dr.ItemArray[1].ToString()) == 0)
                    {
    //se não definir para ReadOnly=fals não vai dar certo, pq o metodo load não diz se a coluna é readonly ou não então eu seto.
                        dt.Columns["curValor"].ReadOnly = false;
                        dr["curValor"] = "Consulte-nos";
                        dt.AcceptChanges();
                    }
                }

    no sql

    transformei o select coluna para um tipo varchar

    select cast(tbl_imoveis.curValor as varchar) curValor
    from tabela

    quinta-feira, 13 de fevereiro de 2014 16:14