【问题标题】:Call stored procedure (sending mails) in C#在 C# 中调用存储过程(发送邮件)
【发布时间】:2013-02-26 05:12:52
【问题描述】:

我正在使用 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";**

【问题讨论】:

  • 究竟为什么需要将其设为存储过程?

标签: c# sql-server-2008 stored-procedures


【解决方案1】:

首先您需要在数据库中创建存储过程(使用 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);的调用

【讨论】:

    猜你喜欢
    • 2014-05-07
    • 2011-06-26
    • 2011-11-27
    • 2014-09-04
    • 2014-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-20
    相关资源
    最近更新 更多