我正在使用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";**
答案 0 :(得分: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);