2011-10-01 66 views
1

asp.net 4.0 - C# - MSSQL 2008 r2 db发送系统消息给用户的公共静态类 - asp.net 4.0

我已经拥有一个私人消息系统。在某些行动我给他们发送私人信息。现在我通过直接插入查询将数据添加到asp.net页面后面的代码中。这些消息由系统而不是用户发送。

对于这些邮件发送(简单地增加信息到数据库)我计划准备一个公共静态类。你认为这会起作用吗?

公共静态类将以此为变量消息

用户id接收用户,邮件的标题,正文

它不会做任何选择查询的数据库只能插入查询发送消息到用户。

有可能是在瞬间可这会引起其他问题,类偶数10同时呼叫? 谢谢。

编辑这是类

using System; 
using System.Data.SqlClient; 
using System.Data; 

public static class SendMessage 
{ 
    public static string srCommandText = "insert into mymessagestable (SenderUserId,ReceiverUserId,SentTime,Topic,Body) values(@SenderUserId,@ReceiverUserId,@SentTime,@Topic,@Body) "; 

    public static bool SendMessageToDb(string srReceiverUserId, string srSenderUserId, string srSentTime, string srTopic, string srBody) 
    { 
     using (SqlConnection connection = new SqlConnection(DbConnection.srConnectionString)) 
     { 
      try 
      { 
       connection.Open(); 
       using (SqlCommand cmd = new SqlCommand(srCommandText, connection)) 
       { 
        cmd.CommandType = CommandType.Text; 
        cmd.Parameters.AddWithValue("@SenderUserId", srSenderUserId); 
        cmd.Parameters.AddWithValue("@ReceiverUserId", srReceiverUserId); 
        cmd.Parameters.AddWithValue("@SentTime", srSentTime); 
        cmd.Parameters.AddWithValue("@Topic", srTopic); 
        cmd.Parameters.AddWithValue("@Body", srBody); 
        cmd.ExecuteNonQuery(); 
       } 
      } 
      catch 
      { 
       return false; 
      } 
      return true; 
     } 
    } 
} 
+0

获取,直到你找到了什么样的异常,你应该在“正常”情况越来越摆脱try/catch块的。也许对于那些你应该返回false,但不要隐瞒不寻常的例外这样,否则你永远不知道什么是错的。 –

回答

1

唯一的问题将是唯一约束/主键的过程中快速并发插入违规。只要所有的插入都是独一无二的,你就会好起来的。

+0

但我认为它不是关于类是有关数据库。我对么 ? – MonsterMMORPG

+0

数据库将处理连接就好了。 –