0

Visual Studio 2010、SQL Server 2008を使用して、メールを送信するアプリケーションを作成しました。クエリは単純な選択ですが、ストアドプロシージャで作成する必要があります。その選択をストアドプロシージャに置き換えるにはどうすればよいですか?

これが私のコードです:

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";**
4

1 に答える 1

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

于 2013-02-25T19:14:33.803 に答える