Array
(
)

Insert pegando valores de campos criados dinamicamente

Ramon Santos
   - 23 jan 2014

Boa tarde,
Criei uma serie de campos dinamicamente que estão funcionando sem problemas. O erro acontece quando vou gravar os registros no banco de dados.
1 - Quando mando gravar 12 linhas ele só insere 6. Talvez algum problema de queda de conexão.
2 - Os campos dinâmicos não estão pegando os valores.
Código que gera os campos
#Código

 for (int i = 1; i <= qtd; i++)
                    {
                        //Criando os controles

                        Label lbl = new Label();
                        lbl.ID = "lbl" + i.ToString();
                        lbl.Text = string.Format("<br/>Informe o valor {0} <br/>", i.ToString());

                        TextBox txt = new TextBox();
                        txt.ID = "txt" + i.ToString();
                        txt.Columns = 30;


                        switch (i)
                        {
                            case 1:
                                resposta = hoje.AddDays(5);
                                break;
                            case 2:
                                resposta = hoje.AddDays(35);
                                SomaData = 30;
                                break;
                            default:
                                resposta = resposta.AddDays(SomaData);
                                break;
                        }

                        TextBox txtData = new TextBox();
                        txtData.ID = "txtData" + i.ToString();
                        txtData.Columns = 30;
                        txtData.Text = String.Format("{0:d}", resposta);

                        //Adicionando os controles a um container, no caso, um Panel
                        Panel1.Controls.Add(lbl);
                        Panel1.Controls.Add(txt);
                        Panel1.Controls.Add(txtData);
                    }

Inserção no banco de dados
#Código
                    try
                    {
                        Boolean insertFinanceiroParcela = apoliceDB.Insert("INSERT into financeiroapolicefaturamento (FINANCEIROAPOLICEFATURAMENTO_DSC_NUMEROAPOLICE, FINANCEIROAPOLICEFATURAMENTO_DAT_VENCIMENTO, FINANCEIROAPOLICEFATURAMENTO_NUM_PARCELA, FINANCEIROAPOLICEFATURAMENTO_DEC_VALOR, FINANCEIROAPOLICE_ID, FORMAPAGAMENTO_ID) values ('" + txtApolice.Text + "', '" + txtData + ix.ToString() + "', '" + ix + "', '" + txt + ix.ToString() + "', '" + financeiroApolice + "', '" + drpTipoPagamento + ix.ToString() + ".SelectedItem.Value" + "')");
                    }

                    catch (Exception ex)
                    {
                        Label1.Text = "Erro: " + ex.Message + "<BR>";
                    }

                    BLL.ConnDbMySQL.CloseDbConn();

Chiodini
   - 27 jan 2014

Bom dia amigo,
Qual a estrutura do campo que você esta tentando granvar?
esta usando ele como Varchar?

depende como esta criado seu campo do banco de dados ele tem um limite de caracteres e por isso corta parte do texto.

att,
Chiodini

Ramon Santos
   - 28 jan 2014

Os campos de texto são varchar, os de valores são DECIMAL.

O problema que estou tendo agora é que não consigo visualizar o erro. Já fiz alguns testes, reconfigurei o web.config para exibição de mensagens de erros.

Chiodini
   - 28 jan 2014

Entao,

O varchar suporta somente 256 caracteres
pode ser isso que esta cortando.

att,
Chiodini