2011-12-29 2 views
1

J'essaie de me connecter à la base de données de manière asynchrone dans le service WCF. Mais en dépit de la mise en "traitement asynchrone = true" dans la chaîne de connexion Je reçoisErreur BeginExecuteReader dans le service WCF

System.InvalidOperationException avec le message BeginExecuteReader: Connection property has not been initialized.

Le code que je utilise pour se connecter à la base de données est:

public void Connect() 
{ 
    using (SqlConnection conn = new SqlConnection("Data Source=User12-PC; Initial Catalog = BMS; User Id=sa; Password = pass; Asynchronous Processing=true")) 
    { 
     SqlCommand command = new SqlCommand(); 
     command.CommandText = "Select l.currvalue from" + 
          " advt_ctrl_pts as p inner join advt_log_in_ctrl_pts l" + 
          " on p.registerid = l.regid and p.ddcid = l.ddcid" + 
          " where p.pointid = 5156102" + 
          " order by datetime"; 

     command.CommandType = CommandType.Text; 

     conn.Open(); 
     IAsyncResult result = command.BeginExecuteReader(); //This part is returning exception 
     if (result.IsCompleted) 
     { 
     timer = new Timer(new TimerCallback(onTimerTick), command.EndExecuteReader(result), 5000, 5000); 
     } 
    } 
} 

Quelqu'un pourrait-il me dire ce qui ne va pas?

Répondre

3

vous n'avez pas affecté la connexion à la commande:

SqlCommand command = new SqlCommand(); 
command.Connection = conn; 
+0

peut aussi utiliser 'nouveau SqlCommand ("select ...", conn);' etc .. –

Questions connexes