2013-02-25 3 views
0

Je travaille avec Visual Studio 2010, SQL Server 2008, j'ai créé une application qui envoie des mails, maintenant ma requête est une sélection simple, mais je dois le faire avec une procédure stockée , comment puis-je remplacer cette sélection pour une procédure stockée?Appelez procédure stockée (envoi de mails) en C#

Voici mon code:

public List<string> SqlSelectMails() 
{ 
    List<string> dir_mails = new List<string>(); 

    **string stSql = "select mail_usuario from dbo.mail_usuario_v2 where n_visita=0 and 
    aviso=1 order by banca";** 

    Bd mibd = new Bd(); 
    SqlDataReader sdr = mibd.sqlExecute(stSql); 

    while (sdr.Read()) 
    { 
     dir_mails.Add(sdr["mail_usuario"].ToString()); 
    } 
    return dir_mails; 
} 

j'aimerai quelque chose comme:

**string stSql = "exec pa_rep_mail";** 
+1

Pourquoi avez-vous besoin d'en faire une procédure stockée? – Earlz

Répondre

2

D'abord, vous devez créer la procédure stockée dans votre base de données (en utilisant SQL Management Studio)

CREATE PROCEDURE [dbo].[pa_rep_mail] 
AS 
    select mail_usuario 
    from dbo.mail_usuario_v2 
    where n_visita=0 and aviso=1 
    order by banca 

alors vous devez l'appeler à partir de votre code

using(SqlConnection cn = new SqlConnection(constring)) 
{ 
    cn.Open(); 
    SqlCommand cmd = new SqlCommand("pa_rep_mail", cn); 
    cmd.CommandType = CommandType.StoredProcedure; 
    SqlDataReader sdr = cmd.ExecuteReader(); 
    while (sdr.Read()) 
    { 
     dir_mails.Add(sdr["mail_usuario"].ToString()); 
    } 
} 

Bien sûr, c'est à vous d'intégrer ce code dans votre code existant. En particulier, comment remplacer l'appel par mibd.sqlExecute(stSql);

+0

merci c'est ce dont j'ai besoin @Steve –

Questions connexes