c# 调用sqlserver sp_send_dbmail 存储过程 发送邮件

<appSettings>
      <add key="MailProfile" value="AAA"/> </appSettings>

private void btnSendMail()
        {
            try
            {
                string mailProfile = ConfigurationManager.AppSettings["MailProfile"];

string receivers = "[email protected]";
                string cc = "";
                string connectionString = ConfigurationManager.ConnectionStrings["BB"].ConnectionString;
                string subject = "subject";
                string fileAttachments = string.Empty;
                string body = string.Empty;

    // \r表示回车,\n 换行 一般都是\r\n 合用
                body = "Hi Gugs:\r\n\r\n ";
                body = body + "\r\n\r\n Source:" + comSource.Text;
                body = body + "\r\n\r\n Thanks";

      //初始化存储过程的参数

var paramMailProfile = new SqlParameter("@profile_name", SqlDbType.NVarChar, 128) { Value = mailProfile };
                var paramReceivers = new SqlParameter("@recipients", SqlDbType.NVarChar, -1) { Value = receivers };
                var paramCC = new SqlParameter("@copy_recipients ", SqlDbType.NVarChar, 255) { Value = cc };
                var paramBody = new SqlParameter("@body", SqlDbType.NVarChar, -1) { Value = body };
                var paramSubject = new SqlParameter("@subject", SqlDbType.NVarChar, 255) { Value = subject };
                var paramFileAttachments = new SqlParameter("@file_attachments", SqlDbType.NVarChar, -1) { Value = fileAttachments };

using (var conn = new SqlConnection(connectionString))
                using (var cmd = new SqlCommand("msdb.dbo.sp_send_dbmail", conn)
                {
                    CommandType = CommandType.StoredProcedure,
                    CommandTimeout = 500,
                })
                {
                    cmd.Parameters.AddRange(new[] { paramMailProfile, paramReceivers, paramCC, paramBody, paramSubject, paramFileAttachments });
                    conn.Open();
                    cmd.ExecuteNonQuery();
                }
            }
            catch (Exception ex)
            {
              return;
            }
        }

时间: 2024-10-15 08:13:34

c# 调用sqlserver sp_send_dbmail 存储过程 发送邮件的相关文章

SQLServer 中存储过程

SQLServer 中存储过程返回的三种方式( 包括存储过程的创建, 在存储过程中调用, 在VS中调用的方法)存储过程有三种返回:   1.   用return返回数字型数据   2.   用返回参数返回结果,可以返回各种数据类型(通过游标来循环查询结果每一行)   3.   直接在存储过程中用select返回结果集,可以是任意的select语句,这意味着是任意的返回结果集 方法一:用return返回数字型数据 1. 创建存储过程--SQLSERVER 2005示例数据库USE Adventur

Sqlserver中存储过程,触发器,自定义函数(一)

Sqlserver中存储过程,触发器,自定义函数 1.存储过程有关内容存储过程的定义:存储过程的分类:存储过程的创建,修改,执行:存储过程中参数的传递,返回与接收:存储过程的返回值:存储过程使用游标. 1.1存储过程的定义:存放在服务器上预先编译好的sql语句,可以给存储过程传递参数,也可以从存储过程返回值. 优点:提供了安全访问机制,比如可以将不同的存储过程的执行权限赋予权限不同的用户:改进了执行性能,因为存储过程是预编译的:减少了网络流量,因为在调用存储过程时,传递的字符串很短,没有很长的s

Sqlserver中存储过程,触发器,自定义函数

Sqlserver中存储过程,触发器,自定义函数: 1. 触发器:是针对数据库表或数据库的特殊存储过程,在某些行为发生的时候就会被激活 触发器的分类: DML触发器:发生在数据操作语言执行时触发执行的存储过程,Insert,Update,Delete After触发器:记录被改变之后激活执行 Instead of触发器:记录被改变之前激活执行. DDL触发器:响应数据定义语言执行时触发执行的存储过程,一般用于执行数据库中的管理任务 审核和规范数据库的操作: 防止数据表结构被更改或删除 2. ht

sqlserver insert 存储过程

-- 根据表中数据生成insert语句的存储过程Create Proc proc_insert (@tablename varchar(256))  as                       -- 表名称begin   set nocount on    Declare @sqlstr  varchar(4000),            @sqlstr1 varchar(4000),            @sqlstr2 varchar(4000) Select @sqlstr='s

SqlServer 获得存储过程的返回值(参数返回),别玩了output

declare @dingdanid int declare @fanhuizhi int set @dingdanid = 1 exec 检测订单出库资格 @dingdanid ,@fanhuizhi output   (注意别忘了output否则返回值是NULL) select @fanhuizhi create proc dbo.检测订单出库资格 @dingdanID int,     @returnValue int output as -- 输入变量 订单编号 set @returnV

Entity Framework SqlFunctions 教你如何在EF调用sqlserver方法的函数存根

今天算是研究了一天的SqlFunctions,请教了几个群的牛人,居然发现大伙对这个都比较陌生, 有的甚至直指EF中是不能调用sqlserver里的方法的. 因为之前搞过linq to sql 里面的SqlMethod ,所以觉得EF里面必须是可以的. 首先需要简短介绍一下EF6和EF5,当你NuGet一个EF5的包的时候,只有EntityFramework,而EF6确有EntityFramework和EntityFramework.SqlServer, 这2者是有很大区别的. 在EF5环境下,

调用MySql 分页存储过程带有输入输出参数

1 Create PROCEDURE getuser 2 ( 3 IN pageIndex INT, 4 IN pageSize INT, 5 OUT count INT 6 ) 7 8 BEGIN 9 declare pindex int DEFAULT (pageIndex-1)*pageSize; 10 11 select * from lc_user order by id LImit pindex,pageSize; 12 13 SELECT COUNT(id) INTO count

Hibernate调用Oracle的存储过程

众所周知,当过多的使用存储过程,触发器等 数据库方言相关的应用时,应用程序的移植性会变差,特别是在Hibernate中使用这些,简直是讽刺,但是当今中国又有哪家公司做项目会关心应用程序的移植性呢? 现在看看Hibernate中对Oracle存储过程的调用. 1.plsql 代码 create Procedure proc() begin select * from proctab; end; 1 create procedure proc1(v_no number(4)) 2 begin 3 s

使用shell脚本调用mysql数据库存储过程,并设置定时任务

本来是要mysql数据库中创建事件任务来,定时执行存储过程,做数据传输的...后来由于种种原因,就使用crontab来定时执行,调用存储过程. 实现这个数据传输分为两步: 第一步:编写shell脚本调用mysql数据库存储过程,如下: #!/bin/bash#0 1 * * * sh /home/drmTrans3/rj_proc.shhost1=127.0.0.1user=systempasswd=linuxport=3306mysql -h${host1} -u${user} -p${pas