天天看點

聊天室代碼

ajax.cs

C# code
using
     System;

    using
     System.Web;

    using
     System.Data;

    using
     System.Configuration;

    using
     System.Data.SqlClient;

    public
     
    class
     Ajax
{

    
    private
     
    static
     
    bool
     IsNull(
    string
     v)
    {
        
    if
     (v 
    ==
     
    null
     
    ||
     v.Trim() 
    ==
     
    ""
    ) 
    return
     
    true
    ;
        
    else
     
    return
     
    false
    ;
    }

    
    private
     
    static
     
    string
     Js(
    string
     v)
    {
        
    return
     v.Replace(
    "
    '
    "
    , 
    "
    //'
    "
    );
    }

    
    public
     
    static
     
    string
     Login()
    {
        HttpRequest Request 
    =
     HttpContext.Current.Request;
        
    string
     rStr 
    =
     
    ""
    ;

        
    string
     UserName 
    =
     Request.Form[
    "
    nn
    "
    ];
        
    if
     (IsNull(UserName))
        {
            rStr 
    =
     
    "
    success:false,err:'昵稱不能為空!'
    "
    ;
        }
        
    else
     
    if
     (UserName.Length 
    >
     
    20
    )
        {
            rStr 
    =
     
    "
    success:false,err:'昵稱不能超過20個字元!'
    "
    ;
        }
        
    else
    
        {
            
    string
     UserId 
    =
     
    ""
    , Key 
    =
     
    ""
    ;
            SqlConnection cn 
    =
     
    new
     SqlConnection(ConfigurationSettings.AppSettings[
    "
    db
    "
    ]);
            cn.Open();
            
    try
    
            {
                SqlCommand cm 
    =
     
    new
     SqlCommand(
    "
    ajaxLogin
    "
    , cn);
                cm.CommandType 
    =
     CommandType.StoredProcedure;
                cm.Parameters.Add(
    new
     SqlParameter(
    "
    @UserName
    "
    , SqlDbType.NVarChar, 
    50
    ));
                cm.Parameters[
    "
    @UserName
    "
    ].Value 
    =
     UserName;
                
    //
    ==========輸出參數
    

                    cm.Parameters.Add(
    new
     SqlParameter(
    "
    @UserId
    "
    , SqlDbType.NVarChar, 
    18
    ));
                cm.Parameters[
    "
    @UserId
    "
    ].Direction 
    =
     ParameterDirection.Output;
                cm.Parameters.Add(
    new
     SqlParameter(
    "
    @UserKey
    "
    , SqlDbType.NVarChar, 
    5
    ));
                cm.Parameters[
    "
    @UserKey
    "
    ].Direction 
    =
     ParameterDirection.Output;
                
                cm.ExecuteNonQuery();
                UserId 
    =
     cm.Parameters[
    "
    @UserId
    "
    ].Value.ToString().Trim();
                Key 
    =
     cm.Parameters[
    "
    @UserKey
    "
    ].Value.ToString().Trim();
                
    if
     (UserId 
    ==
     
    "
    -1
    "
    ) rStr 
    =
     
    @"
    success:false,err:'發生錯誤,請稍後再試!'
    "
    ;
                
    else
     
    if
     (UserId 
    ==
     
    "
    0
    "
    ) rStr 
    =
     
    @"
    success:false,err:'已經存在此使用者昵稱,請修改您的昵稱!'
    "
    ;
                
    else
     rStr 
    +=
     
    "
    success:true,UserId:'
    "
     
    +
     UserId 
    +
     
    "
    ',Key:'
    "
     
    +
     Key 
    +
     
    "
    '
    "
    ;
                cm.Dispose();
            }
            
    catch
     (Exception e)
            {
                rStr 
    =
     
    @"
    success:false,err:'原因//n
    "
     
    +
     Js(e.Message) 
    +
     
    "
    '
    "
    ;
            }
            cn.Close();
        }

        
    return
     rStr;
    }

    
    public
     
    static
     
    string
     Logout()
    {
        HttpRequest Request 
    =
     HttpContext.Current.Request;
        
    string
     rStr 
    =
     
    ""
    , UserId 
    =
     Request.Form[
    "
    uid
    "
    ], Key 
    =
     Request.Form[
    "
    key
    "
    ];
        
    if
     (IsNull(UserId) 
    ||
     IsNull(Key)) 
    return
     
    "
    success:false,err:'使用者資訊丢失!'
    "
    ;

        SqlConnection cn 
    =
     
    new
     SqlConnection(ConfigurationSettings.AppSettings[
    "
    db
    "
    ]);
        cn.Open();
        
    try
    
        {
            SqlCommand cm 
    =
     
    new
     SqlCommand(
    "
    ajaxLogout
    "
    , cn);
            cm.CommandType 
    =
     CommandType.StoredProcedure;
            cm.Parameters.Add(
    new
     SqlParameter(
    "
    @UserId
    "
    , SqlDbType.NVarChar, 
    18
    ));
            cm.Parameters[
    "
    @UserId
    "
    ].Value 
    =
     UserId;
            cm.Parameters.Add(
    new
     SqlParameter(
    "
    @UserKey
    "
    , SqlDbType.NVarChar, 
    5
    ));
            cm.Parameters[
    "
    @UserKey
    "
    ].Value 
    =
     Key;
            cm.Parameters.Add(
    new
     SqlParameter(
    "
    @Result
    "
    , SqlDbType.Int));
            cm.Parameters[
    "
    @Result
    "
    ].Direction 
    =
     ParameterDirection.Output;

            cm.ExecuteNonQuery();
            
            
    if
    (cm.Parameters[
    "
    @UserId
    "
    ].Value.ToString().Trim()
    ==
    "
    0
    "
    )rStr 
    =
     
    "
    success:false,err:'使用者資訊不存在!'
    "
    ;
            
    else
     rStr
    =
    "
    success:true
    "
    ;
            cm.Dispose();
        }
        
    catch
     (Exception e)
        {
            
        }
        cn.Close();
        
    return
     rStr;
    }

    
    public
     
    static
     
    string
     Say()
    {
        HttpRequest Request 
    =
     HttpContext.Current.Request;
        
    string
     From 
    =
     Request.Form[
    "
    from
    "
    ], To 
    =
     Request.Form[
    "
    to
    "
    ]
            , Key 
    =
     Request.Form[
    "
    key
    "
    ], Msg 
    =
     Request.Form[
    "
    ct
    "
    ], rStr 
    =
     
    ""
    ;
        
    if
     (IsNull(From) 
    ||
     IsNull(Key) 
    ||
     IsNull(To) 
    ||
     IsNull(Msg)) rStr 
    =
     
    "
    success:false,err:'資訊傳遞不完整!'
    "
    ;
        
    else
    
        {
            SqlConnection cn 
    =
     
    new
     SqlConnection(ConfigurationSettings.AppSettings[
    "
    db
    "
    ]);
            cn.Open();
            
    try
    
            {               
                SqlCommand cm 
    =
     
    new
     SqlCommand(
    "
    ajaxSay
    "
    , cn);
                cm.CommandType 
    =
     CommandType.StoredProcedure;
                cm.Parameters.Add(
    new
     SqlParameter(
    "
    @UserKey
    "
    , SqlDbType.NVarChar, 
    5
    ));
                cm.Parameters[
    "
    @UserKey
    "
    ].Value 
    =
     Key;
                cm.Parameters.Add(
    new
     SqlParameter(
    "
    @From
    "
    , SqlDbType.NVarChar, 
    18
    ));
                cm.Parameters[
    "
    @From
    "
    ].Value 
    =
     From;
                cm.Parameters.Add(
    new
     SqlParameter(
    "
    @To
    "
    , SqlDbType.NVarChar, 
    18
    ));
                cm.Parameters[
    "
    @To
    "
    ].Value 
    =
     To;
                cm.Parameters.Add(
    new
     SqlParameter(
    "
    @Msg
    "
    , SqlDbType.NVarChar, 
    800
    ));
                cm.Parameters[
    "
    @Msg
    "
    ].Value 
    =
     Msg;
                cm.Parameters.Add(
    new
     SqlParameter(
    "
    @Result
    "
    , SqlDbType.Int));
                cm.Parameters[
    "
    @Result
    "
    ].Direction 
    =
     ParameterDirection.Output;
                cm.ExecuteNonQuery();
                
    if
     (cm.Parameters[
    "
    @Result
    "
    ].Value.ToString() 
    ==
     
    "
    0
    "
    ) rStr 
    =
     
    "
    sucess:false,err:'發表失敗!//n原因:接收者已經不存在!'
    "
    ;
                
    else
     rStr 
    =
     
    "
    success:true
    "
    ;
                cm.Dispose();
            }
            
    catch
     (Exception e)
            {
                rStr 
    =
     
    "
    sucess:false,err:'發表失敗!原因//n
    "
     
    +
     Js(e.Message) 
    +
     
    "
    '
    "
    ;
            }
            cn.Close();
        }
        
    return
     rStr;
    }

    
    public
     
    static
     
    string
     ReadUser()
    {
        HttpRequest Request 
    =
     HttpContext.Current.Request;
        
    string
     rStr 
    =
     
    ""
    , UserId 
    =
     Request.Form[
    "
    uid
    "
    ];
        
    if
     (IsNull(UserId)) rStr 
    +=
     
    "
    success:false,err:'使用者id丢失!'
    "
    ;
        
    else
    
        {
            SqlConnection cn 
    =
     
    new
     SqlConnection(ConfigurationSettings.AppSettings[
    "
    db
    "
    ]);
            cn.Open();
            
    try
    
            {
                SqlCommand cm 
    =
     
    new
     SqlCommand(
    "
    ajaxReadUser
    "
    , cn);
                cm.CommandType 
    =
     CommandType.StoredProcedure;
                cm.Parameters.Add(
    new
     SqlParameter(
    "
    @UserId
    "
    , SqlDbType.NVarChar, 
    18
    ));
                cm.Parameters[
    "
    @UserId
    "
    ].Value 
    =
     UserId;
                
    string
     j 
    =
     
    ""
    ;
                SqlDataReader dr 
    =
     cm.ExecuteReader();
                
    while
     (dr.Read()) j 
    +=
     
    "
    ,{id:'
    "
     
    +
     dr[
    0
    ] 
    +
     
    "
    ',nn:'
    "
     
    +
     Js(dr[
    1
    ].ToString()) 
    +
     
    "
    '}
    "
    ;
                dr.Close();
                cm.Dispose();
                rStr 
    =
     
    "
    success:true,data:[
    "
     
    +
     (j 
    ==
     
    ""
     
    ?
     
    ""
     : j.Substring(
    1
    )) 
    +
     
    "
    ]
    "
    ;
            }
            
    catch
     (Exception e)
            {
                rStr 
    =
     
    @"
    success:false,err:'發生如下錯誤//n
    "
     
    +
     Js(e.Message) 
    +
     
    "
    '
    "
    ;
            }
            cn.Close();
        }
        
    return
     rStr;
    }

    
    public
     
    static
     
    string
     Read()
    {
        HttpRequest Request 
    =
     HttpContext.Current.Request;
        
    string
     rStr 
    =
     
    ""
    ;
        
    string
     UserId 
    =
     Request.Form[
    "
    uid
    "
    ], Key 
    =
     Request.Form[
    "
    key
    "
    ];
        
    if
     (IsNull(UserId) 
    ||
     IsNull(Key)) rStr 
    =
     
    "
    success:false,err:'使用者資訊丢失!'
    "
    ;
        
    else
    
        {
            SqlConnection cn 
    =
     
    new
     SqlConnection(ConfigurationSettings.AppSettings[
    "
    db
    "
    ]);
            cn.Open();
            
    try
    
            {
                SqlCommand cm 
    =
     
    new
     SqlCommand(
    "
    ajaxRead
    "
    , cn);
                cm.CommandType 
    =
     CommandType.StoredProcedure;
                cm.Parameters.Add(
    new
     SqlParameter(
    "
    @UserId
    "
    , SqlDbType.NVarChar, 
    18
    ));
                cm.Parameters[
    "
    @UserId
    "
    ].Value 
    =
     UserId;
                cm.Parameters.Add(
    new
     SqlParameter(
    "
    @UserKey
    "
    , SqlDbType.NVarChar, 
    5
    ));
                cm.Parameters[
    "
    @UserKey
    "
    ].Value 
    =
     Key;
                SqlDataReader dr 
    =
     cm.ExecuteReader();
                
    string
     j 
    =
     
    ""
    ;
                
    while
     (dr.Read()) j 
    +=
     
    "
    ,'
    "
     
    +
     Js(dr[
    0
    ].ToString()) 
    +
     
    "
    '
    "
    ;
                dr.Close();
                cm.Dispose();
                rStr 
    =
     
    "
    success:true,data:[
    "
     
    +
     (j 
    ==
     
    ""
     
    ?
     
    ""
     : j.Substring(
    1
    )) 
    +
     
    "
    ]
    "
    ;
            }
            
    catch
     (Exception e)
            {
                rStr 
    =
     
    "
    success:false,err:'發生以下錯誤
    "
     
    +
     Js(e.Message) 
    +
     
    "
    '
    "
    ;
            }
            cn.Close();
        }
        
    return
     rStr;
    }
}