Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    12

    [C#] DataTable: Limiti alla dimensione campi memo?

    Buongiorno a tutti, sono nuovo di questo forum. Premetto che non sono molto esperto di Asp.net e C#. Sto cercando di sviluppare un piccolo sito dinamico per l'azienda dove lavoro. Tempo fa ne avevo fatto uno in ASP dove lavoravo prima e mi aveva dato discrete soddisfazioni.
    Adesso sono passato al framework aggiornato e sono un po' spaesato. Precisamente avrei da sottoporre alla vostra gentile attenzione questo problema.

    Ho una tabella in un database access che contiene dei testi con relativa traduzione in lingua. Quindi costruisco dinamicamente la query per estrarre il campo con la lingua giusta e con questa query ottengo i paragrafi del testo della pagina in lingua che voglio visualizzare. Tutto estremamente banale.

    Il problema è che i testi vengono fuori troncati a circa 255 caratteri.

    segue...

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    12
    Per ottenere i dati dal database uso una classe specializzata SQLItem e due dei suoi metodi sono:
    codice:
            public void getData(DataTable adt)
            { 
                if (!_canDo)
                    throw new Exception("SQLItem: impossibile restituire la tabella: oggetto QSLItem non inizializzato.");
    
                OleDbDataAdapter ldad = new OleDbDataAdapter(_SQL, _connection);
    
                try
                {
                    // Ottiene la tabella dall'adattatore di connessione 
                    ldad.Fill(adt);
                }
                catch (System.Data.OleDb.OleDbException e)
                {
                    throw new Exception("SQLItem: impossibile ottenere i dati nella tabella:" + e.Message);
                }
    
                // se la tabella è vuota 
                if (adt.Rows.Count == 0)
                    throw new Exception("SQLItem: Tabella vuota");
    
            }
    
            // ottiene l'insieme dei record multilingua per una pagina del database
            public void getPageParagraphs(string apage, string alanguage)
            {
                // aggiunge il parametro ID pagina
                Add(apage);
                // aggiunge il parametro lingua
                Add(alanguage);
    
                // Ottiene l'SQL formattato per i paragrafi pagina multilingua
                GetSQL(pc_SQL_GET_PARAGRAPHS_PER_PAGE);
    
                // Ottiene la tabella dalla connessione al database 
                DataTable lDT = new DataTable();
                getData(lDT);
    
                // Ottieni i record dalla tabella in base alla stringa SQL preformattata
                _records = lDT.Select();
            }
    segue...

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    12
    Alla fine nella pagina uso del codice simile a questo:

    codice:
        private SQLItem _BSQLI = new SQLItem();
    
        protected void Page_Load(object sender, EventArgs e)
        {
            _BSQLI.getPageParagraphs("59", "");
        }
    
        public void ContentForAnonymousUser()
        {
            string lrow = "";
            Utils lBu = new Utils();
    
            lrow += lBu.nBR(10); // aggiungi spaziature tra paragrafi
            lrow += _BSQLI.records[0]["tText"].ToString();  
            lrow += lBu.nBR(4);
            lrow += _BSQLI.records[1]["tText"].ToString(); 
            lrow += lBu.nBR(1);
            lrow += _BSQLI.records[2]["tText"].ToString(); 
            lrow += lBu.nBR(3);
            lrow += _BSQLI.records[3]["tText"].ToString();
            lrow += lBu.nBR(2);
            lrow += _BSQLI.records[4]["tText"].ToString(); 
            lrow += lBu.nBR(2);
            lrow += _BSQLI.records[5]["tText"].ToString();
            lrow += lBu.nBR(10);
    
            Response.Write(lrow);
        }
    segue...

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    12
    Il problema è che il campo tText nel database è un campo memo e le istruzioni

    _BSQLI.records[0]["tText"].ToString();

    Dove _records è definito come:

    private DataRow[] _records;

    Ritornano delle stringhe apppunto troncate a circa 255 caratteri.

    Magari mi sto perdendo in un bicchiere d'acqua ma qualcuno può darmi una dritta per favore, e magari insultarmi pure se sono somaro , ... c'è sempre da imparare.

    Grazie a tutti in anticipo.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    12
    Ho risolto . Quando estraevo i dati dalla tabella oltre che scegliere il campo in lingua concatenavo già i marcatori HTML di apertura e chiusura per il tipo di paragrafo. Non chiedetemi perché ma se non includo i marcatori il testo viene fuori intero, se no viene fuori troncato. Pazienza vorrà dire che i marcatori li aggiungerò a manina con un case mentre creo la stringa da sputare fuori con Response.Write().

    Grazie a tutti lo stesso!

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    12
    VVoVe: Non funziona più di nuovo.........

    Ma dove sto sbagliando???

  7. #7
    ma dove li aggiungevi sti marcatori?

  8. #8
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    12
    Originariamente inviato da optime
    ma dove li aggiungevi sti marcatori?
    Ad ogni record di testo multilingua ho aggiunto un tipo di paragrafo mentre al tipo di paragrafo ho associato dei campi per i marcatori (TAG) html. Quindi se il testo ha un tipo paragrafo del "Titolo2" la query estrae anche i tag HTML di apertura e chiusura <H2> e </H2>.

    In ogni caso dopo una nottata passata ad ascoltare gli interventi del TED tra i quali quello di Bill Gates ed alcune ore di sonno catartico che mi hanno donato l'illuminazione forse ho capito dove sta il problema, adesso verifico.

  9. #9

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.