📄 sms.cs
字号:
Database data = new Database();
SqlDataReader dr = null;
SqlParameter[] prams = {
data.MakeInParam("@Username", SqlDbType.VarChar, 50, Username)
};
try
{
data.RunProc("SP_SMS_GetMyAllMsg",prams,out dr);
return dr;
}
catch(Exception ex)
{
Error.Log(ex.ToString());
throw new Exception("得到我所接收的所有短讯出错!",ex);
}
finally
{
data = null;
dr = null;
}
}
/// <summary>
/// 得到我所发送的所有短讯
/// </summary>
/// <returns></returns>
public SqlDataReader GetMySent(string Username)
{
Database data = new Database();
SqlDataReader dr = null;
SqlParameter[] prams = {
data.MakeInParam("@Username", SqlDbType.VarChar, 50, Username)
};
try
{
data.RunProc("SP_SMS_GetMySent",prams,out dr);
return dr;
}
catch(Exception ex)
{
Error.Log(ex.ToString());
throw new Exception("得到我所接收的所有短讯出错!",ex);
}
finally
{
data = null;
dr = null;
}
}
/// <summary>
/// 得到某个人的最新一条消息
/// </summary>
/// <returns></returns>
public SqlDataReader GetNewLocalMsg(string Username)
{
Database data = new Database();
SqlDataReader dr = null;
SqlParameter[] prams = {
data.MakeInParam("@username", SqlDbType.VarChar, 50, Username)
};
try
{
data.RunProc("sp_SMS_GetNewMsg",prams,out dr);
return dr;
}
catch(Exception ex)
{
Error.Log(ex.ToString());
throw new Exception("得到某个人的最新一条消息出错!",ex);
}
finally
{
data = null;
dr = null;
}
}
/// <summary>
/// 发送站内短消息
/// </summary>
/// <param name="sender">发送者用户名</param>
/// <param name="receivers">接受者用户名,可用逗号相隔多人</param>
/// <param name="msg">短消息内容</param>
/// <param name="sendtime">短消息发送时间</param>
/// <returns>无返回值</returns>
public void SendLocalMsg(string sender,string receivers,string msg,DateTime sendtime)
{
string newmsgid = "0";
Database data = new Database();
#region 存消息至数据库,返回MsgID
SqlParameter[] prams1 = {
data.MakeInParam("@sender", SqlDbType.VarChar, 50, sender),
data.MakeInParam("@content", SqlDbType.VarChar, 255, msg),
data.MakeInParam("@type", SqlDbType.Int, 1, 1),
data.MakeInParam("@sendtime", SqlDbType.DateTime, 30, sendtime),
data.MakeOutParam("@newmsgid", SqlDbType.Int, 4)
};
try
{
data.RunProc("SP_SMS_SendLocalMsg",prams1);
newmsgid = prams1[4].Value.ToString();
}
catch(Exception ex)
{
Error.Log(ex.ToString());
throw new Exception("存消息至数据库出错!",ex);
}
#endregion
#region 将消息与接收者关联
SqlParameter[] prams2 = {
data.MakeInParam("@MsgID", SqlDbType.Int, 4, Int32.Parse(newmsgid)),
data.MakeInParam("@Receivers",SqlDbType.VarChar, 5000, receivers),
data.MakeInParam("@MobileNo", SqlDbType.VarChar, 4, ""),
data.MakeInParam("@type", SqlDbType.Int, 1, 1)
};
try
{
data.RunProc("SP_SMS_SetMsgReceiver",prams2);
}
catch(Exception ex)
{
Error.Log(ex.ToString());
throw new Exception("将消息与接收者关联出错!",ex);
}
#endregion
}
/// <summary>
/// 发站用户站内手机短消息
/// </summary>
/// <param name="Sender">发送者用户名</param>
/// <param name="RecipientMobileNo">接受者手机号码,可用逗号相隔多人</param>
/// <param name="Content">短消息内容</param>
/// <param name="Sendtime">短消息发送时间</param>
/// <param name="RepeatTimes">短消息重复发送次数</param>
/// <param name="RepeatPeriod">重复发送周期,以分钟为单位</param>
/// <returns>返回执行代码 1 正常 2 错误</returns>
public static int SaveMobileMsgToBuffer(string Sender,string RecipientMobileNo,string Content,DateTime Sendtime,int RepeatTimes,int RepeatPeriod)
{
Database data = new Database();
#region 存消息至数据库,返回MsgID
SqlParameter[] prams1 = {
data.MakeInParam("@Sender", SqlDbType.VarChar, 50, Sender),
data.MakeInParam("@RecipientMobileNo", SqlDbType.VarChar, 255, RecipientMobileNo),
data.MakeInParam("@Content", SqlDbType.VarChar, 255, Content),
data.MakeInParam("@Sendtime", SqlDbType.DateTime, 30, Sendtime),
data.MakeInParam("@RepeatTimes", SqlDbType.Int, 4,RepeatTimes),
data.MakeInParam("@RepeatPeriod", SqlDbType.Int, 4,RepeatPeriod)
};
try
{
data.RunProc("SP_SMS_SaveMobileMsgToBuffer",prams1);
return 1;
}
catch(Exception ex)
{
Error.Log(ex.ToString());
throw new Exception("存消息至数据库出错!",ex);
}
#endregion
}
/// <summary>
/// 发送短消息
/// </summary>
/// <param name="sender">发送者用户名</param>
/// <param name="receivers">接受者用户名,可用逗号相隔多人</param>
/// <param name="msg">短消息内容</param>
/// <param name="type">短消息类型 1为站内消息 2为手机短讯 3为站外手机(取mobileno)</param>
/// <param name="sendtime">短消息发送时间</param>
/// <param name="mobileno">如果是站外用户时用。表示站外用户的手机号</param>
/// <param name="repeattimes">如果是手机短讯时用。表示此条讯息的重复发送次数</param>
/// <param name="repeattimes">如果是手机短讯时用。表示此条讯息的重复发送时间间隔(以分钟为单位)</param>
/// <returns>返回操作结束代码</returns>
public int SendMsg(string sender,string recipients,string msg,int type,DateTime sendtime,string mobileno,int repeattimes,int repeatperiod)
{
int RtnCode = 1;
//去除最后一位的逗号,并替换全角至半角
if(recipients.EndsWith(",")) recipients = recipients.Substring(0,recipients.Length-1);
recipients = recipients.Replace(",",",");
switch (type)
{
case 1://站内用户的站内短讯
SendLocalMsg(sender,recipients,msg,sendtime);
return RtnCode;
case 2: //站内用户的手机短讯
string MobileNoStr = GetMobileNoByUsername(recipients);
RtnCode = SaveMobileMsgToBuffer(sender,MobileNoStr,msg,sendtime,repeattimes,repeatperiod);
return RtnCode;
case 3: //站外用户的手机短讯
RtnCode = SaveMobileMsgToBuffer(sender,mobileno,msg,sendtime,repeattimes,repeatperiod);
return RtnCode;
default:
return RtnCode;
}
}
#region 根据用户名字符串获取手机号码字符串
/// <summary>
/// 根据用户名字符串获取手机号码字符串
/// <param name="Username">用户名字符串,用逗号相隔</param>
/// <returns>返回手机字符串</returns>
/// </summary>
public string GetMobileNoByUsername(string Username)
{
string MobileNoStr = "";
Database data = new Database();
SqlParameter[] prams = {
data.MakeInParam("@UserNameStr", SqlDbType.VarChar, 3000, Username),
data.MakeOutParam("@MobileNoStr", SqlDbType.VarChar, 3000)
};
try
{
data.RunProc("SP_SMS_GetMobileNoByUsername",prams);
MobileNoStr = prams[1].Value.ToString();
return MobileNoStr;
}
catch(Exception ex)
{
Error.Log(ex.ToString());
throw new Exception("根据用户名字符串获取手机号码字符串出错!",ex);
}
finally
{
data = null;
}
}
#endregion
/// <summary>
/// 删除一组短讯
/// </summary>
/// <param name="MsgIDS">消息ID的连接字符串,用逗号相隔开</param>
public bool MsgDelete(string MsgIDS)
{
Database data = new Database();
SqlParameter[] prams = {
data.MakeInParam("@MsgIDS", SqlDbType.VarChar,4000, MsgIDS)
};
try
{
data.RunProc("SP_SMS_DelMsg",prams);
data = null;
return true;
}
catch(Exception ex)
{
Error.Log(ex.ToString());
return false;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -