2013-02-25 5 views
0

Я работаю с Visual Studio 2010, SQL Server 2008, я создал приложение, которое отправляет письма, теперь мой запрос является простым выбором, но мне нужно сделать его с помощью хранимой процедуры , как я могу заменить этот выбор для хранимой процедуры?Вызов хранимой процедуры (отправка писем) в C#

Вот мой код:

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; 
} 

Я хотел что-то вроде:

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

Именно поэтому вы должны сделать это хранимой процедурой? – Earlz

ответ

2

Прежде всего, необходимо создать хранимую процедуру в базе данных (с помощью 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 

, то вам нужно позвонить ему из вашего кода

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()); 
    } 
} 

Конечно, вам нужно интегрировать этот код в существующий код. В частности, как заменить звонок на mibd.sqlExecute(stSql);

+0

спасибо, что мне нужно @Steve –

Смежные вопросы