Ciao! ho ricominciato (finalmente!) a lavorare sul tuo codice, riscontrando i primi problemini, te li descrivo:

InterfaceDB idb = new InterfaceDB(); 

Generale gen = new Generale(); 
GestMenu menu = new GestMenu(); 


Questi ad esempio a cosa si riferiscono? Io in realtà devo adattare il tutto ad un database access, qui credo tu hai messo anche altre cose (almeno credo)

Se hai voglia e tempo, mi daresti una mano ad adattarlo?

Ti ringrazio infinitamente e anche se in maniera virtuale, ti offro una birra!

Creazione Siti Vicenza
Posizionamento Siti - SEO
843 messaggi dal 08 aprile 2009
La classe InterfaceDb contiene semplicemente dei metodi per la lettura di tabelle e esecuzione di comandi sql. Dove c'è una SELECT sotituisci la chiamata con il tuo codice per l'esecuzione della select.
Ad esempio in CaricaNewsForm io faccio:
     string Select ="";



            Select += "SELECT id_news,";
            Select += " CAST((Day(data_news)) AS NVARCHAR ) + '.' + CAST((Month(data_news)) AS NVARCHAR ) + '.' + CAST((Year(data_news)) AS NVARCHAR ) AS DATA, ";
            Select += " testo,titolo,(SELECT descrizione FROM categorie WHERE categorie.id_categoria=news.id_categoria) AS CATEGORIA";
            Select += " FROM NEWS";
            Select += " ORDER BY data_news DESC";

            string MySelect = idb.Select(Select, ref DT);
            if (MySelect.Trim().Length > 0) { throw new Exception(MySelect); }



idb.Select non è nient'altro che questo:
   public string Select(string strSelect, ref DataTable DT)
    {
        string StrConn = "";
        ImpStrConn(ref StrConn);

        TypeConnection TypeConn = TypeConnection.nullo;
        TypeSQL(ref TypeConn);
        switch (TypeConn)
        {
            case TypeConnection.MSSQL:
                string MySelectSQL = SelectSQL(StrConn, strSelect, ref DT);
                if (MySelectSQL.Trim().Length > 0) { return MySelectSQL; }
                break;
            case TypeConnection.MySql:
                string MySelectMySQLODBC = SelectMySQLODBC(StrConn, strSelect, ref DT);
                if (MySelectMySQLODBC.Trim().Length > 0) { return MySelectMySQLODBC; }
                break;
        }

        return " ";
    }

adatta la chiamata a quello che devi fare.

Questa Generale gen = new Generale();
la puoi eliminare. Se cercavi nel codice non viene mai utilizzata.
Stessa cosa per GestMenu menu = new GestMenu();
eliminala.
laurar181 ha scritto:
La classe InterfaceDb contiene semplicemente dei metodi per la lettura di tabelle e esecuzione di comandi sql.


Quindi devo ricreare questa classe?



Dove c'è una SELECT sotituisci la chiamata con il tuo codice per l'esecuzione della select.
Ad esempio in CaricaNewsForm io faccio:


Scusami forse mi sono perso, ma CaricaNewsForm è la tua pagina?


 
     string Select =""; 
 
 
 
            Select += "SELECT id_news,"; 
            Select += " CAST((Day(data_news)) AS NVARCHAR ) + '.' + CAST((Month(data_news)) AS NVARCHAR ) + '.' + CAST((Year(data_news)) AS NVARCHAR ) AS DATA, "; 
            Select += " testo,titolo,(SELECT descrizione FROM categorie WHERE categorie.id_categoria=news.id_categoria) AS CATEGORIA"; 
            Select += " FROM NEWS"; 
            Select += " ORDER BY data_news DESC"; 
 
            string MySelect = idb.Select(Select, ref DT); 
            if (MySelect.Trim().Length > 0) { throw new Exception(MySelect); } 
 


Ok qui ho cambiato semplicemente chiamando i campi del db che mi interessano.



idb.Select non è nient'altro che questo:
 
   public string Select(string strSelect, ref DataTable DT) 
    { 
        string StrConn = ""; 
        ImpStrConn(ref StrConn); 
 
        TypeConnection TypeConn = TypeConnection.nullo; 
        TypeSQL(ref TypeConn); 
        switch (TypeConn) 
        { 
            case TypeConnection.MSSQL: 
                string MySelectSQL = SelectSQL(StrConn, strSelect, ref DT); 
                if (MySelectSQL.Trim().Length > 0) { return MySelectSQL; } 
                break; 
            case TypeConnection.MySql: 
                string MySelectMySQLODBC = SelectMySQLODBC(StrConn, strSelect, ref DT); 
                if (MySelectMySQLODBC.Trim().Length > 0) { return MySelectMySQLODBC; } 
                break; 
        } 
 
        return " "; 
    } 

adatta la chiamata a quello che devi fare.


Questa porzione di codice non c'è nel tuo esempio, ma lo aggiungo.

Questa Generale gen = new Generale();
la puoi eliminare. Se cercavi nel codice non viene mai utilizzata.
Stessa cosa per GestMenu menu = new GestMenu();
eliminala.


Ok questa è fatta.

Una ultima cosa nel codice chiami diverse volte "ListNews" che è l'ID del gridView e anche "FormNews" che è l'id del FormView, ma dal lato del codice questi controlli non vengono trovati perchè me li da come inesistenti (me li sottolinea in rosso) ma anche se questo forse riesco a superarlo da solo, accetto comunque un tuo suggerimento (si puo sempre imparare qualcosa!!)

grazie mille per la pazienza titanica...!

Creazione Siti Vicenza
Posizionamento Siti - SEO
843 messaggi dal 08 aprile 2009
Strano che te li da in rosso...a me non li da...controlla bene il tuo codice...
Si ho ricontrollato e non vedo dove sia l'errore (forse perchè sono davanti al pc dalle 7!!!)

provo a postare tutto il codice, sicuramente tu sei piu lucido di me!

using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Web.Security;
using System.Data;
using System.Data.Odbc; 


public partial class test2 : System.Web.UI.Page
{
    InterfaceDB idb = new InterfaceDB(); 


    protected void Page_Load(object sender, EventArgs e)
    {


        int IDNews = -1; 

        for (int i = 0; i < Request.QueryString.Count; i++) 
        { 
        if (Request.QueryString.Keys[i] == "IDNews") 
        { 
        IDNews = Convert.ToInt16(Request.QueryString[i].ToString().Trim()); 

        } 

        } 
        if (!Page.IsPostBack) 
        { 
        string MyCaricaNewsLista = CaricaNewsLista(); 
        string MyCaricaNewsForm = CaricaNewsForm(IDNews); 
        } 


} 

#region Funzioni Private 

private void Message(string messaggio) 
{ 
Response.Write("<script>alert('" + messaggio.Replace("'", "") + "');</script>"); 

} 

private string CaricaMenu(DataTable MyMenu) 
{ 

string ContenutoSottoMenu = ""; 
string TitoloPage = ""; 
string Key = "NEWS"; 
try 
{ 

string MyCaricaMenu = menu.CaricaMenu(MyMenu, ref ContenutoSottoMenu, ref TitoloPage, Key); 

SottoMenu.Controls.Add(new LiteralControl(ContenutoSottoMenu)); 

Titolo.Text = TitoloPage; 
} 
catch (Exception ex) 
{ 
return ex.Message; 
} 
return " "; 
} 
private string CaricaNewsForm(int IDNews) 
{ 
// Carica le news nella lista di ricerca 


string StrConn = ""; 
InterfaceDB.TypeConnection TypeConn = new InterfaceDB.TypeConnection(); 
try 
{ 
idb.TypeSQL(ref TypeConn); 

idb.ImpStrConn(ref StrConn); 

} 
catch (Exception ex) 
{ 
return ex.Message; 
} 



DataTable DT = new DataTable(); 
try 
{ 
string Select =""; 



Select += "SELECT ID"; 
Select += "Titolo"; 
Select += "Prezzo";
Select += "Percorso"; 
Select += " ORDER BY id DESC"; 

string MySelect = idb.Select(Select, ref DT); 
if (MySelect.Trim().Length > 0) { throw new Exception(MySelect); } 

DT.Columns.Add(); 
int coladd = DT.Columns.Count-1; 
DT.Columns[coladd].ColumnName = "TESTO_C"; 
for (int i = 0; i < DT.Rows.Count; i++) 
{ 
string Testo_News = System.Text.Encoding.Unicode.GetString((byte[])DT.Rows[i]["titolo"]); 
HtmlTextArea textareaTesto = new HtmlTextArea(); 
textareaTesto.ID = "TestoNews"; 
textareaTesto.InnerHtml = Testo_News; 
DT.Rows[i][coladd] = textareaTesto.InnerText; 

} 

} 
catch (Exception ex) 
{ 
return ex.Message; 
} 




try 
{ 
FormNews.DataSource = DT; 
FormNews.DataBind(); 


} 
catch (Exception ex) 
{ 
return ex.Message; 
} 


//Se ho selezionato una news 
try 
{ 
if (IDNews != -1) 
{ 
for (int i = 0; i < DT.Rows.Count;i++) 
{ 
if (IDNews == Convert.ToInt16(DT.Rows[i]["id_news"])) 
{ 
FormNews.PageIndex = i; 
try 
{ 
string carica = CaricaNewsForm(-1); 
if (carica.Trim().Length > 0) 
{ 
throw new Exception(carica); 
} 

} 
catch (Exception ex) 
{ 
Message(ex.Message); 
} 
} 
} 
} 
} 
catch(Exception ex) 
{ 
return ex.Message; 
} 

//Se non ho selezionato una news 
if (IDNews == -1) 
{ 
try 
{ 
int row = 0; 
int rowlista = 0; 

IDNews =Convert.ToInt16(((Label)FormNews.FindControl("id_news")).Text); 
DataTable DTLista = new DataTable(); 
DTLista = (DataTable)Session["ListaNews"]; 
for (int i = 0; i < DTLista.Rows.Count; i++) 
{ 
string id = DTLista.Rows[i]["id_news"].ToString(); 
if (Convert.ToInt16(id) == IDNews) 
{ 
row = i; 
break; 
} 
} 


if (ListNews.PageCount > 0) 
{ 

int intero = (row+1) / ListNews.PageSize; 
int resto = (row+1) % ListNews.PageSize; 

int pagina = intero; 
if (resto == 0) { pagina--; } 
ListNews.PageIndex = pagina; 
try 
{ 
string carica = CaricaNewsLista(); 
if (carica.Trim().Length > 0) 
{ 
throw new Exception(carica); 
} 

} 
catch (Exception ex) 
{ 
Message(ex.Message); 
} 
bool trovato = false; 

for (int i = 0; i < ListNews.Rows.Count; i++) 
{ 
string id = ((Label)ListNews.Rows[i].FindControl("id_news")).Text; 
if (Convert.ToInt16(id) == IDNews) 
{ 
trovato = true; 
rowlista = i; 
break; 
} 
} 
GridViewRow Riga = ListNews.Rows[rowlista]; 
Riga.CssClass = "selectedgridrowstyleListNews"; 
} 
} 
catch (Exception ex) 
{ 
return ex.Message; 
} 
} 


return " "; 
} 
private string CaricaNewsLista() 
{ 
// Carica le news nella lista di ricerca 

string StrConn = ""; 
InterfaceDB.TypeConnection TypeConn = new InterfaceDB.TypeConnection(); 
try 
{ 
idb.TypeSQL(ref TypeConn); 

idb.ImpStrConn(ref StrConn); 

} 
catch (Exception ex) 
{ 
return ex.Message; 
} 



DataTable DT = new DataTable(); 
try 
{ 


string Select = "SELECT id_news,"; 
Select += " CAST((Day(data_news)) AS NVARCHAR ) + '.' + CAST((Month(data_news)) AS NVARCHAR ) + '.' + CAST((Year(data_news)) AS NVARCHAR ) AS DATA, "; 
Select += " titolo,(SELECT descrizione FROM categorie WHERE categorie.id_categoria=news.id_categoria) AS CATEGORIA"; 
Select += " FROM NEWS"; 
Select += " ORDER BY data_news DESC"; 

string MySelect = idb.Select(Select, ref DT); 
if (MySelect.Trim().Length > 0) { throw new Exception(MySelect); } 


} 
catch (Exception ex) 
{ 
return ex.Message; 
} 




try 
{ 
ListNews.DataSource = DT; 
ListNews.DataBind(); 
Session["ListaNews"] = DT; 

} 
catch (Exception ex) 
{ 
return ex.Message; 
} 

return " "; 
} 
#endregion 


protected void FormNews_PageIndexChanging(object sender, FormViewPageEventArgs e) 
{
FormNews.PageIndex = e.NewPageIndex; 
try 
{ 
string carica = CaricaNewsForm(-1); 
if (carica.Trim().Length > 0) 
{ 
throw new Exception(carica); 
} 

} 
catch (Exception ex) 
{ 
Message(ex.Message); 
} 
} 
protected void ListNews_PageIndexChanging(object sender, GridViewPageEventArgs e) 
{ 
if (e.NewPageIndex == -1) { return; } 
ListNews.PageIndex = e.NewPageIndex; 
try 
{ 
string carica = CaricaNewsLista(); 
if (carica.Trim().Length > 0) 
{ 
throw new Exception(carica); 
} 

} 
catch (Exception ex) 
{ 
Message(ex.Message); 
} 

} 
protected void ListNews_RowCreated(object sender, GridViewRowEventArgs e) 
{ 
string rowID = String.Empty; 
if (e.Row.RowType == DataControlRowType.DataRow) 
{ 
rowID = "row" + e.Row.RowIndex; 
e.Row.Attributes.Add("id", "row" + e.Row.RowIndex); 
e.Row.Attributes.Add("onmouseover", "SelectRowOver(" + "'" + rowID + "'" + ")"); 
e.Row.Attributes.Add("onmouseout", "UnSelectRowOver(" + "'" + rowID + "'" + ")"); 

} 
} 
protected void ListNews_RowCommand(object sender, GridViewCommandEventArgs e) 
{ 
int IDNews = 0; 
try 
{ 
IDNews = Convert.ToInt16(e.CommandArgument); 
} 
catch 
{ 
return; 
} 
string carica = CaricaNewsForm(IDNews); 

int row = 0; 
for (int i = 0; i < ListNews.Rows.Count; i++) 
{ 
string id = ((Label)ListNews.Rows[i].FindControl("id_news")).Text; 
if ( Convert.ToInt16(id) == IDNews) 
{ 
row = i; 
break; 
} 
} 

GridViewRow Riga = ListNews.Rows[row]; 
Riga.CssClass = "selectedgridrowstyleListNews"; 

ListNews_SelectedIndexChanged(sender, e); 


} 
protected void ListNews_SelectedIndexChanged(object sender, EventArgs e) 
{ 
int i = 0; 
} 

} 



Creazione Siti Vicenza
Posizionamento Siti - SEO
Ciao!

Stavo pensando, non è che tu hai delle classi, delle configurazioni nel web.config oppure qualche altra risorsa collegata alla pagina delle news?

Forse l'errore è proprio li...

Creazione Siti Vicenza
Posizionamento Siti - SEO
843 messaggi dal 08 aprile 2009
No l'unica cosa collegata è la stringa di connessione al database.
E quando inserisci l'update panel è lui in aiutomatico che ti inserisce le informazioni dell'assembly nel web.config

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.