Soucis avec un évènement en C#
bonjour,
voilà mon soucis, je dois tester l'accès à une base de données, et envoyer le résultat via un event j'ai donc écrit ceci :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
delegate void OnConnectionEventHandler(object sender, SqlEventArgs e);
class TestConnection
{
public event OnConnectionEventHandler ConnEvent=null;
private string connString = "Server=.;Database=tests;Trusted_Connection=True;";
public void TestConnectionMethod()
{
SqlConnection myConn = new SqlConnection(connString);
bool isOpened = false;
string message = string.Empty;
try
{
myConn.Open();
myConn.Close();
isOpened = true;
message = "Connection opened";
}
catch (Exception ex)
{
isOpened = false;
message = "can't open connection" + ex.Message.ToString();
}
ConnEvent(this, new SqlEventArgs(message, isOpened));
}
}
} |
et
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| namespace SQL_Server___Reader
{
class SqlEventArgs:EventArgs
{
public string strSqlMessage { get; set; }
public bool bSqlState { get; set; }
public SqlEventArgs(string sysMessage,bool bSysMessage)
{
this.strSqlMessage = sysMessage;
this.bSqlState = bSysMessage;
}
}
} |
enfin dans le corps du programme de test :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| static void Main(string[] args)
{
TestConnection t = new TestConnection();
t.TestConnectionMethod();
t.ConnEvent += new OnConnectionEventHandler(t_ConnEventHander);
Console.ReadLine();
}
static void t_ConnEventHander(object sender, SqlEventArgs e)
{
Console.WriteLine(e.strSqlMessage);
} |
Mais à chaque lancement du programme j'ai cette erreur :
Citation:
System.NullReferenceException was unhandled
Message=Object reference not set to an instance of an object.
Source=SQL Server - Reader
StackTrace:
at SQL_Server___Reader.TestConnection.TestConnectionMethod() in D:\Documents\Visual Studio 2010\Projects\SQL Server\SQL Server - Reader\TestConnection.cs:line 37
at SQL_Server___Reader.Program.Main(String[] args) in D:\Documents\Visual Studio 2010\Projects\SQL Server\SQL Server - Reader\Program.cs:line 18
at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
InnerException:
Auriez vous une idée, s'il vous plait ?
merci par avance .