Impossibile trovare il tipo o il nome dello spazio dei nomi 'MySQL'
Alvaro non è online. Ultima attività: 29/05/2008 10.17.11Alvaro
Inserito il: 20 maggio 2008 20.38
22 messaggi dal 21 giu 2001 Istalla Microsoft Silverlight!
Mi sto scervellando ma non ne vengo a capo.
Ho fatto una paginetta stupida di accesso a MySQL con .net (sono alle prime armi)
e tutto fila liscio.
MySQ 4.1 E' istallato e funziona (lo uso da anni e sempre con Asp tradizionale)
e funzia.
Ho un sito in ASP classic e devo creare un web services che ogni n minuti acceda a MySQL e invii delle email (parto da un articolo trovato su questo sito).
Essendo inesperto di .net ho fatto dei test progressivi (invia una email di prova ogni n minuti, e questo Ok).
Quando compilo la dll che contiene il codice per accedere al db mi segnala questo errore.

Impossibile trovare il tipo o il nome dello spazio dei nomi 'MySQL'

Allora ho aggiunto il riferimento alla dll del driver e nel web.config ora ho

<compilation debug="true"><assemblies>
<add assembly="MySql.Data, Version=1.0.6.15336, Culture=neutral,PublicKeyToken=C5687FC88969C44D"/></assemblies>
</compilation>

ma non funziona. Ho provato a mettere la dll (MySql.Data.dll) nella cartella bin ma niente.

Perche mi segnala che non conosce il namespace se quando eseguo un test con una normale pagina web funziona ?

Ecco il codice:
using System;
using System.Data;
using MySql.Data;
using MySql.Data.MySqlClient;

using System.Timers;
using System.Web;
using System.Web.Mail;

public class MyGlobal:HttpApplication{
private Timer OpTimer;
//orario stabilito della prima operazione
//e per le successive (calcolato automaticamente)
public static DateTime When;
public static int quantiInviati;

//riesegui ogni n ore
public static byte Every;

public MyGlobal():base(){
//orario stabilito della prima operazione
//non indicare la data in previsione di futuri riavvi di iis
When=DateTime.Parse("18:48");
quantiInviati=0;
//riesegui ogni n minuti
Every=1;
StartTimer();
}

public void OnTimedEvent(object source, ElapsedEventArgs e) {
//operazioni varie da eseguire
//db ecc

int idIscr=0;
string indirizzoDest="";



MySQLConnection mysqlconn = new MySQLConnection("Server=localhost;Data Source=miodb;User ID=ioutente;Password=miapass;");
mysqlconn.Open();

MySQLCommand cmd=new MySQLCommand("SELECT * FROM Iscritti WHERE idIscr=1251",mysqlconn);
MySQLDataReader dr=cmd.ExecuteReaderEx();

while(dr.Read())
indirizzoDest = Convert.ToString(dr["email"]);
inviaEmail(indirizzoDest, "Un messaggio automatizzato", "il corpo del messaggio " + quantiInviati); // prova
mysqlconn.Close();

//riimposto il timer per portarlo avanti di n ore
When=When.AddMinutes(Every);


//riprendo l'intervallo cos prendo in considerazione il tempo di elaborazione passato
//con il tempo potrebbe sballare
OpTimer.Interval=GetInterval();
OpTimer.Start();

}

public void inviaEmail(string indirizzo, string soggetto, string corpo) {
MailMessage EMAIL = new MailMessage();
EMAIL.From = "prova@simplogic.it";
EMAIL.To = indirizzo;
EMAIL.Subject = soggetto;
EMAIL.Body = corpo;
SmtpMail.Send(EMAIL);
quantiInviati++;
}

private double GetInterval(){
TimeSpan diff=When.Subtract(DateTime.Now);

//risultato in millisecondi
return diff.Ticks / 10000;
}

private void StartTimer(){
//se l'ora in cui deve partire è più piccola di oggi (visto che la parserizza con la data odierna)
//lo portiamo alla prossima esecuzione
if (When<DateTime.Now) {
//aumento la data dell'operazione dell'intervallo dato
//fino a quando è maggiorne dell'ora odierna
while (When<=DateTime.Now){
When=When.AddHours(Every);
}
}
OpTimer=new Timer(GetInterval());

OpTimer.AutoReset=false;
OpTimer.Elapsed+=new ElapsedEventHandler(OnTimedEvent);
OpTimer.Enabled=true;
}
}

RE: Impossibile trovare il tipo o il nome dello spazio dei nomi 'MySQL'
Alvaro non è online. Ultima attività: 29/05/2008 10.17.11Alvaro
Inserito il: 21 maggio 2008 10.59
22 messaggi dal 21 giu 2001 Istalla Microsoft Silverlight!
Aggiungo un dettaglio: visto che questo file poi viene compilato, non e' che mi sto scordando di aggiungere un qualche parametro ?
io ora lo compilo in questo modo:
csc /out:bin/global.dll /target:library /r:system.dll /r:system.web.dll global.cs
ci sono altri parametri per fargli "vedere" il driver par l'accesso a MySQL ?

RE: Impossibile trovare il tipo o il nome dello spazio dei nomi 'MySQL'
Alvaro non è online. Ultima attività: 29/05/2008 10.17.11Alvaro
Inserito il: 21 maggio 2008 11.53
22 messaggi dal 21 giu 2001 Istalla Microsoft Silverlight!
Ok, forse sto cominciando a risolvere 1 problema...
Non trova lo spazio dei nomi per via del fatto che quando compilo non includo la dll di MySQL connector.
In pratica va messa la dll nella directory bin e poi si compila in questo modo:

csc /out:bin/global.dll /target:library /r:system.dll /r:system.web.dll /r:bin/MySql.Data.dll global.cs

in questo modo non mi segnala l'errore ma mi segnala il
"Impossibile trovare il tipo o il nome dello spazio dei nomi 'MySQLConnection'. Probabilmente manca una direttiva using... "

e quindi sono punto e accapo.
Quindi non basta importare nella riga di comando per la compilazione la dll del connector... occorre referenziare altro ?

Microsoft Most Valuable Professional
Re: Impossibile trovare il tipo o il nome dello spazio dei nomi 'MySQL'
Daniele Bochicchio non è online. Ultima attività: 29/08/2008 20.40.42Daniele Bochicchio
Inserito il: 21 maggio 2008 16.57
contributi / Top Poster / Community manager / daniele.aspitalia.com / Blog / 9584 messaggi dal 31 ago 1998 Istalla Microsoft Silverlight!
alvaro wrote:
e quindi sono punto e accapo.
Quindi non basta importare nella riga di comando per la compilazione la dll del connector... occorre referenziare altro ?

probabilmente il case corretto è MySqlConnection, per questo non te lo trova.

Daniele Bochicchio

ASP.NET
.NET Framework
LINQ
Silverlight

Vai a:
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.


fabrica - 1782 pt
vladimiro - 1731 pt
PeppeDotNet - 731 pt

Ultimi vincitori: PeppeDotNet, fabrica, vladimiro

Iscriviti anche tu e raccogli punti. Questo mese in palio VS 2008 + Windows Server 2008, ReShaper e 1 ebook!



COMMUNITY
ULTIMI MESSAGGI


IN EVIDENZA
MISC
Powered by .db Forums