Exemple #1
0
        //post api/values
        //动态加组图(动态ID)or 个人信息修改加头图(用户ID)
        public static bool Post(string id, int type)
        {
            bool flag = true;

            //打开数据库
            OracleConnection conn = new OracleConnection(DBAccess.connStr);

            conn.Open();
            OracleCommand cmd = new OracleCommand();

            cmd.Connection = conn;
            //浏览器上传文件的body
            var SrcRequest = HttpContext.Current.Request;


            string filepath = "";

            //逐一存下body中给出的文件集合
            foreach (string f in SrcRequest.Files.AllKeys)
            {
                HttpPostedFile file = SrcRequest.Files[f];
                //分割后缀
                string fileExt = Path.GetExtension(file.FileName);

                if (type == 1)
                {
                    //插入PICTURE一条记录
                    GeneralAPI g = new GeneralAPI();

                    string pid = g.NewIDOf("PICTURE");
                    //文件路径不重名
                    filepath        = @"C:\mmps\" + pid + fileExt;
                    cmd.CommandText = "insert into PICTURE(ID,URL,MOMENT_ID) values('" + pid + "','" + filepath + "','" + id + "')";
                    if (cmd.ExecuteNonQuery() != 1)
                    {
                        flag = false;
                    }
                }
                else if (type == 2)
                {
                    //更新用户个人头像
                    filepath        = @"C:\heads\" + id + fileExt;
                    cmd.CommandText = "update USERS set PHOTO='" + filepath + "' where ID='" + id + "'";
                    if (cmd.ExecuteNonQuery() != 1)
                    {
                        flag = false;
                    }
                }

                //存本地
                if (File.Exists(filepath))
                {
                    File.Delete(filepath);
                }
                file.SaveAs(filepath);
            }
            return(flag);
        }
Exemple #2
0
        public IHttpActionResult GetRankingMoments(string email)
        {
            //todo:连接数据库
            DBAccess dBAccess = new DBAccess();

            //执行数据库select操作
            OracleDataReader rd = dBAccess.GetDataReader("select* from (select m.ID, m.content, m.like_num, m.forward_num, m.collect_num, m.comment_num, m.time, u.id sender_id, u.username, u.email, u.bio, u.photo, ROWNUM rn from MOMENT m,USERS u where m.sender_id = u.ID order by m.like_num desc) where rn<=20");

            //创建User_Moment对象List,并向其中添加读出的数据库信息
            List <User_Moment> resultList = new List <User_Moment>();

            //创建api对象
            GeneralAPI api = new GeneralAPI();

            while (rd.Read())//当数据库能读出一条符合条件的元组,执行循环
            {
                User_Moment um = new User_Moment();
                um.SenderID   = rd["SENDER_ID"].ToString();
                um.MomentID   = rd["ID"].ToString();
                um.Username   = rd["USERNAME"].ToString();
                um.Email      = rd["EMAIL"].ToString();
                um.Bio        = rd["BIO"].ToString();
                um.Photo      = rd["PHOTO"].ToString();
                um.Content    = rd["CONTENT"].ToString();
                um.LikeNum    = int.Parse(rd["LIKE_NUM"].ToString());
                um.ForwardNum = int.Parse(rd["FORWARD_NUM"].ToString());
                um.CollectNum = int.Parse(rd["COLLECT_NUM"].ToString());
                um.CommentNum = int.Parse(rd["COMMENT_NUM"].ToString());
                um.Time       = rd["TIME"].ToString();
                //获取该用户的点赞状态
                int likeState = api.CheckLikeState(email, um.MomentID);
                if (likeState == 1)//未点赞过
                {
                    um.LikeState = "false";
                }
                else if (likeState == 0)//点赞过
                {
                    um.LikeState = "true";
                }
                else
                {
                    um.LikeState = "error";
                }

                resultList.Add(um);
            }

            //以json格式返回数组
            return(Json <List <User_Moment> >(resultList));
        }
Exemple #3
0
        public IHttpActionResult ModifyMoment([FromBody] Modify_Moment modifyMoment)
        {
            int status = 0;

            //todo:连接数据库
            DBAccess dBAccess = new DBAccess();

            //创建api对象
            GeneralAPI api = new GeneralAPI();

            //获取用户ID
            string user_id = api.EmailToUserID(modifyMoment.email);

            if (user_id == null)
            {
                status = 1;//不存在该用户
            }

            //执行数据库操作
            OracleDataReader rd = dBAccess.GetDataReader("select * from MOMENT where ID='" + modifyMoment.moment_id + "'and SENDER_ID = '" + user_id + "'");

            if (rd.Read())
            {
                string currentTime = DateTime.Now.ToString("yyyyMMddhhmmss");
                if (dBAccess.ExecuteSql("update MOMENT set content = '" + modifyMoment.content + "',time = TO_TIMESTAMP ('" + currentTime + "','yyyy-mm-dd hh24:mi:ss.ff') where sender_id = '" + user_id + "'and id = '" + modifyMoment.moment_id + "'"))
                {
                    status = 0;//修改成功
                }
                else
                {
                    status = 3;//修改失败
                }
            }
            else
            {
                status = 2;//该用户没有发表过该动态
            }

            return(Ok(status));
        }
Exemple #4
0
        public IHttpActionResult GetLikeList(string email, string moment_id)
        {
            //todo:连接数据库
            DBAccess dBAccess = new DBAccess();

            //执行数据库select操作
            OracleDataReader rd = dBAccess.GetDataReader(" select u.* from FAVORITE f, USERS u where f.moment_id = '" + moment_id + "' and f.user_id = u.id  ");

            //创建Users对象List,并向其中添加读出的数据库信息
            List <User_Follow> resultList = new List <User_Follow>();

            //创建api对象
            GeneralAPI api = new GeneralAPI();

            while (rd.Read())  //当数据库能读出一条符合条件的元组,执行循环
            {
                User_Follow uf = new User_Follow();
                uf.ID       = rd["ID"].ToString();
                uf.Username = rd["USERNAME"].ToString();
                uf.Photo    = rd["PHOTO"].ToString();
                uf.Email    = rd["EMAIL"].ToString();
                uf.Bio      = rd["BIO"].ToString();
                string user_id      = api.EmailToUserID(email);
                int    follow_state = api.CheckFollowState(user_id, rd["ID"].ToString());
                if (follow_state == 0)//关注
                {
                    uf.FollowState = "true";
                }
                else//未关注
                {
                    uf.FollowState = "false";
                }

                resultList.Add(uf);
            }

            return(Json <List <User_Follow> >(resultList));//返回符合条件的Users列表
        }
        public HttpResponseMessage SvCmt()
        {
            bool success = true;
            HttpResponseMessage response = new HttpResponseMessage();

            var     coment  = HttpContext.Current.Request.Params;
            Comment comment = new Comment();

            //永久保存数据
            comment.Mid       = coment["Mid"];
            comment.Sender_id = coment["Sender_id"];
            comment.Content   = coment["Content"];
            //comment.Send_time = coment["Send_time"];
            comment.Send_time = DateTime.Now.ToString();
            comment.Quote_id  = coment["Quote_id"];


            //打开数据库连接
            OracleConnection conn = new OracleConnection(DBAccess.connStr);

            conn.Open();



            OracleCommand cmd = new OracleCommand();

            cmd.Connection = conn;



            //保存评论体
            GeneralAPI g = new GeneralAPI();

            comment.Cid = g.NewIDOf("COMENT");

            if (comment.Quote_id == null || comment.Quote_id.Trim().Equals("")) //搞定评论类型
            {
                comment.Type = "0";
            }
            else
            {
                comment.Type = "1";
            }
            cmd.CommandText = "insert into COMENT(ID,CONTENT,SEND_TIME,QUOTE_ID,TYPE) values('" + comment.Cid + "','" + comment.Content + "',TO_DATE('" + comment.Send_time + "', 'yyyy-mm-dd hh24:mi:ss'),'" + comment.Quote_id + "','" + comment.Type + "')";
            int executeResult = cmd.ExecuteNonQuery();

            if (executeResult != 1)
            {
                success = false;
            }


            //评论动态关系表插入记录
            cmd.CommandText = "insert into PUBLISH_COMMENT(USER_ID,COMMENT_ID,MOMENT_ID) values('" + comment.Sender_id + "','" + comment.Cid + "','" + comment.Mid + "')";
            executeResult   = cmd.ExecuteNonQuery();
            if (executeResult != 1)
            {
                success = false;
            }

            /* *
             * 评论数触发器级联修改动态Comment_Num
             * hh +2 DEBUG
             * */



            if (success != true)
            {
                response.StatusCode = HttpStatusCode.InternalServerError; //404
            }
            return(response);
        }
        public Tuple <List <Moment>, int, bool, List <string>, List <int> > Followers(int Page, int PageSize, string TagContent, string Email)
        {
            bool             FollowState = false;
            string           sql         = Access.Select("ID", "USERS", "EMAIL='" + Email + "'").ToString();
            OracleDataReader r           = Access.GetDataReader(sql);

            r.Read();
            string UserId = r["ID"].ToString();

            if (Access.GetRecordCount(Access.Select("*", "FOLLOW_TAG", "USER_ID='" + UserId + "' and TAG='" + TagContent + "'")) == 0)
            {
                FollowState = false;  //用户未关注
            }
            else
            {
                FollowState = true;   //用户已关注
            }
            //动态ID的数据集
            DataSet MIDSet = new DataSet();
            //动态的数据集
            //DataSet MSet = new DataSet();
            string select = Access.Select("MOMENT_ID", "MOMENT_TAG", "TAG = '" + TagContent + "'");

            MIDSet = Access.GetDataSet(select, "MOMENT_TAG", PageSize, Page);
            //动态的数组
            List <Moment> moments = new List <Moment>();
            //user的数组
            List <string> users = new List <string>();
            //点赞状态的数组
            List <int> states = new List <int>();

            foreach (DataRow row in MIDSet.Tables[0].Rows)
            {
                select = Access.Select("*", "MOMENT", "ID = '" + row[0] + "'");
                OracleDataReader rd = Access.GetDataReader(select);
                while (rd.Read())
                {
                    string id        = rd["ID"].ToString();
                    string sender_id = rd["SENDER_ID"].ToString();
                    string content   = rd["CONTENT"].ToString();
                    int    likes     = int.Parse(rd["LIKE_NUM"].ToString());
                    int    forwards  = int.Parse(rd["FORWARD_NUM"].ToString());
                    int    collects  = int.Parse(rd["COLLECT_NUM"].ToString());
                    int    comments  = int.Parse(rd["COMMENT_NUM"].ToString());
                    string time      = rd["TIME"].ToString().Replace('T', ' ');

                    DBAccess         db  = new DBAccess();
                    string           SQL = db.Select("USERNAME", "USERS", "ID='" + sender_id + "'");
                    OracleDataReader R   = db.GetDataReader(SQL);
                    while (R.Read())
                    {
                        users.Add(R["USERNAME"].ToString());
                    }
                    GeneralAPI A = new GeneralAPI();
                    states.Add(A.CheckLikeState(Email, id));
                    moments.Add(new Moment(id, sender_id, content, likes, forwards, collects, comments, time));
                }
            }
            select = Access.Select("*", "FOLLOW_TAG", "TAG = '" + TagContent + "'");
            int Flowers = Access.GetRecordCount(select);

            Tuple <List <Moment>, int, bool, List <string>, List <int> > result = new Tuple <List <Moment>, int, bool, List <string>, List <int> >(null, 0, false, null, null);

            if (moments.Count != 0)
            {
                result = new Tuple <List <Moment>, int, bool, List <string>, List <int> >(moments, Flowers, FollowState, users, states);
            }
            else if (moments.Count == 0)
            {
                result = new Tuple <List <Moment>, int, bool, List <string>, List <int> >(null, 0, FollowState, null, null);
            }

            return(result);
        }
Exemple #7
0
        public IHttpActionResult DeleteMoment(string email, string moment_id)
        {
            //删除所有评论
            CmtApi.DelCmt(moment_id);


            int status = 0;

            //todo:连接数据库
            DBAccess dBAccess = new DBAccess();

            //创建api对象
            GeneralAPI api = new GeneralAPI();

            //获取用户ID
            string user_id = api.EmailToUserID(email);

            if (user_id == null)
            {
                status = 1;//不存在该用户
            }



            //执行数据库操作
            OracleDataReader rd = dBAccess.GetDataReader("select * from MOMENT where ID='" + moment_id + "'and SENDER_ID = '" + user_id + "'");

            if (rd.Read())
            {
                //获取该动态的quote_mid
                string quote_mid = rd["QUOTE_MID"].ToString();

                if (dBAccess.ExecuteSql("delete from MOMENT where sender_id = '" + user_id + "'and id = '" + moment_id + "'"))
                {
                    status = 0;//成功删除
                }
                else
                {
                    status = 3;      //动态删除失败
                }
                if (quote_mid != "") //该条动态来自转发,同时修改forward表
                {
                    rd = dBAccess.GetDataReader("select * from MOMENT where ID='" + quote_mid + "'");
                    if (rd.Read())
                    {
                        //设置新的转发数
                        int new_forward_num = int.Parse(rd["FORWARD_NUM"].ToString()) - 1;

                        if (dBAccess.ExecuteSql("delete from FORWARD where user_id = '" + user_id + "'and moment_id = '" + quote_mid + "'"))
                        {
                            if (dBAccess.ExecuteSql("update MOMENT set forward_num= ' " + new_forward_num + " 'where  ID='" + quote_mid + "' "))
                            {
                                status = 0;//成功删除该动态和转发表项,并且源动态转发数减一
                            }
                            else
                            {
                                status = 6;//成功删除该动态和转发表项,但源动态转发数没有更改
                            }
                        }
                        else
                        {
                            status = 5;//转发表项删除失败
                        }
                    }
                    else
                    {
                        status = 4;//该动态删除成功,找不到源动态
                    }
                }
            }
            else
            {
                status = 2;//该用户没有发表过该动态
            }

            return(Ok(status));
        }
Exemple #8
0
        public IHttpActionResult FollowState(string from_id, string to_id)
        {
            GeneralAPI a = new GeneralAPI();

            return(Ok(a.CheckFollowState(from_id, to_id)));
        }
Exemple #9
0
        public IHttpActionResult UpdateLiking(string email, string moment_id)
        {
            int status    = 0;
            int likeState = -1;

            //todo:连接数据库
            DBAccess dBAccess = new DBAccess();

            //创建api对象
            GeneralAPI api = new GeneralAPI();

            //记录该用户是否点赞该动态
            likeState = api.CheckLikeState(email, moment_id);

            //执行数据库操作
            OracleDataReader rd = dBAccess.GetDataReader("select * from MOMENT where ID='" + moment_id + "'");

            if (rd.Read())
            {
                //获取该动态的quote_mid
                string quote_mid = rd["QUOTE_MID"].ToString();

                //设置新的点赞数
                int new_like_num;
                if (likeState == 0)//取消点赞,赞数减一
                {
                    new_like_num = int.Parse(rd["LIKE_NUM"].ToString()) - 1;
                }
                else if (likeState == 1)//点赞,赞数加一
                {
                    new_like_num = int.Parse(rd["LIKE_NUM"].ToString()) + 1;
                }
                else//用户不存在
                {
                    status = 4;
                    return(Ok(status));
                }

                //获取用户id
                string user_id = api.EmailToUserID(email);

                //更新数据库中的点赞数
                if (dBAccess.ExecuteSql("update MOMENT set like_num= ' " + new_like_num + " 'where  ID='" + moment_id + "' "))
                {
                    if (likeState == 1)//点赞
                    {
                        if (dBAccess.ExecuteSql("insert into FAVORITE(USER_ID,MOMENT_ID) values('" + user_id + "','" + moment_id + "')"))
                        {
                            status = 0;//该动态moment表和favorite表都修改成功
                        }
                        else
                        {
                            status = 1;//该动态moment表修改成功,favorite表修改失败
                        }
                    }
                    else if (likeState == 0)//取消点赞
                    {
                        if (dBAccess.ExecuteSql("delete from FAVORITE where user_id = '" + user_id + "' and moment_id = '" + moment_id + "'"))
                        {
                            status = 0;//该动态moment表和favorite表都修改成功
                        }
                        else
                        {
                            status = 1;//该动态moment表修改成功,favorite表修改失败
                        }
                    }
                }
                else//该动态moment表修改失败,未修改favorite表
                {
                    status = 2;
                }



                if (quote_mid != "")//该条动态来自转发,同时修改源动态点赞数
                {
                    rd = dBAccess.GetDataReader("select * from MOMENT where ID='" + quote_mid + "'");
                    int likeState2 = api.CheckLikeState(email, quote_mid);
                    if (rd.Read())
                    {
                        if (likeState == 0 && likeState2 == 0)//取消点赞,赞数减一
                        {
                            new_like_num = int.Parse(rd["LIKE_NUM"].ToString()) - 1;
                        }
                        else if ((likeState == 0 && likeState2 == 1) || (likeState == 1 && likeState2 == 0))//当前动态点赞,源动态已点赞过,或当前动态取消点赞,源动态未点赞,源动态赞数不变
                        {
                            new_like_num = int.Parse(rd["LIKE_NUM"].ToString());
                            status       = 0;
                            return(Ok(status));
                        }
                        else if (likeState == 1 && likeState2 == 1)//点赞,赞数加一
                        {
                            new_like_num = int.Parse(rd["LIKE_NUM"].ToString()) + 1;
                        }

                        //更新数据库中源动态的点赞数
                        if (dBAccess.ExecuteSql("update MOMENT set like_num= ' " + new_like_num + " 'where  ID='" + quote_mid + "' "))
                        {
                            if (likeState2 == 1)//点赞
                            {
                                if (dBAccess.ExecuteSql("insert into FAVORITE(USER_ID,MOMENT_ID) values('" + user_id + "','" + quote_mid + "')"))
                                {
                                    status = 0;//源动态moment表和favorite表都修改成功,返回成功状态码0
                                }
                                else
                                {
                                    status = 6;//源动态moment表修改成功,favorite表修改失败
                                }
                            }
                            else if (likeState2 == 0)//取消点赞
                            {
                                if (dBAccess.ExecuteSql("delete from FAVORITE where user_id = '" + user_id + "' and moment_id = '" + quote_mid + "'"))
                                {
                                    status = 0;//源动态moment表和favorite表都修改成功,返回成功状态码0
                                }
                                else
                                {
                                    status = 6;//源动态moment表修改成功,favorite表修改失败
                                }
                            }
                        }
                        else//源动态moment表修改失败,未修改favorite表
                        {
                            status = 5;
                        }
                    }
                    else
                    {
                        status = 7;//找不到源动态
                    }
                }
            }
            else//找不到该动态
            {
                status = 3;
            }

            //返回状态码
            return(Ok(status));
        }
 private void dclock_Tick(object sender, EventArgs e)
 {
     GeneralAPI.appendUsername(playerName);
     this.ltime.Text = DateTime.Now.ToString("hh:mm tt");
 }
Exemple #11
0
        public IHttpActionResult DeleteMoment(string email, string moment_id)
        {
            //设置初始状态码
            int status = 0;

            DBAccess   dBAccess = new DBAccess();
            GeneralAPI api      = new GeneralAPI();

            //获取当前用户ID
            string user_id = api.EmailToUserID(email);

            if (user_id == null)
            {
                status = 1;//不存在该用户
            }

            //获取本条动态信息
            OracleDataReader rd = dBAccess.GetDataReader("select * from MOMENT where ID='" + moment_id + "'and SENDER_ID = '" + user_id + "'");

            if (rd.Read())
            {
                //获取该动态的quote_mid
                string quote_mid = rd["QUOTE_MID"].ToString();

                //
                //判断本条动态是否来自转发
                //
                if (quote_mid != "")
                {
                    rd = dBAccess.GetDataReader("select * from MOMENT where ID='" + quote_mid + "'");
                    if (rd.Read())
                    {
                        //设置新的转发数
                        int new_forward_num = int.Parse(rd["FORWARD_NUM"].ToString()) - 1;

                        //删除本条动态的所有评论
                        CmtApi.DelCmt(moment_id);

                        //删除本条动态
                        if (dBAccess.ExecuteSql("delete from MOMENT where sender_id = '" + user_id + "'and id = '" + moment_id + "'"))
                        {
                            status = 0;//成功删除
                        }
                        else
                        {
                            status = 3;//动态删除失败
                        }

                        if (dBAccess.ExecuteSql("delete from FORWARD where user_id = '" + user_id + "'and moment_id = '" + quote_mid + "'"))
                        {
                            if (dBAccess.ExecuteSql("update MOMENT set forward_num= ' " + new_forward_num + " 'where  ID='" + quote_mid + "' "))
                            {
                                status = 0;//成功删除该动态和转发表项,并且源动态转发数减一
                            }
                            else
                            {
                                status = 6;//成功删除该动态和转发表项,但源动态转发数没有更改
                            }
                        }
                        else
                        {
                            status = 5;//转发表项删除失败
                        }
                    }
                    else
                    {
                        status = 4;//该动态删除成功,找不到源动态
                    }
                }

                //
                //本条动态为源动态
                //
                else
                {
                    //获取转发了本条动态的动态id
                    DataSet       ds   = dBAccess.GetDataSet("select ID from MOMENT where QUOTE_MID='" + moment_id + "'", "unknown");
                    List <string> list = new List <string>();
                    foreach (DataRow dr in ds.Tables[0].Rows)
                    {
                        list.Add(dr[0].ToString());
                    }

                    bool forward = true;

                    //判断是否有人转发本动态
                    if (list.Count.Equals(0))
                    {
                        forward = false;
                    }

                    if (forward) //有人转发本条动态,需要删除所有转发动态
                    {
                        foreach (DataRow dr in ds.Tables[0].Rows)
                        {
                            string mid = dr[0].ToString();
                            CmtApi.DelCmt(mid);                                                                   //删除对应动态的全部评论
                            dBAccess.ExecuteSql("delete from MOMENT where id = '" + mid + "'");                   //从Moment表删除全部转发自本动态的动态

                            if (dBAccess.ExecuteSql("delete from FORWARD where moment_id = '" + moment_id + "'")) //从forward表删除全部转发表项
                            {
                                status = 0;
                            }
                            else
                            {
                                status = 7;
                            }

                            //删除本条动态的所有评论
                            CmtApi.DelCmt(moment_id);
                        }
                    }

                    //删除本条动态
                    if (dBAccess.ExecuteSql("delete from MOMENT where id = '" + moment_id + "'"))
                    {
                        status = 0;//成功删除
                    }
                    else
                    {
                        status = 3;//动态删除失败
                    }
                }
            }
            else
            {
                status = 2;//该用户没有发表过该动态
            }
            return(Ok(status));
        }
Exemple #12
0
        public IHttpActionResult ForwardMoment([FromBody] Forward forward)
        {
            //创建返回信息,先假设转发成功
            int status            = 0;
            OracleConnection conn = new OracleConnection(DBAccess.connStr);

            try
            {
                conn.Open();
            }
            catch (Exception ex)
            {
                throw (ex);
            }
            OracleCommand cmd = new OracleCommand();

            cmd.Connection  = conn;
            cmd.CommandText = "select * from moment " +
                              "where sender_id='" + forward.User_ID + "' and id='" + forward.Moment_ID + "'";
            OracleDataReader rd = cmd.ExecuteReader();

            if (rd.HasRows)
            {
                status = 1;//转发了自己的
                return(Ok(status));
            }
            cmd.CommandText = "select * from forward where forward.user_id='" + forward.User_ID + "' and moment_id='" + forward.Moment_ID + "'";
            rd = cmd.ExecuteReader();
            if (rd.HasRows)
            {
                status = 3;//已经转发过
                return(Ok(status));
            }
            cmd.CommandText = "insert into FORWARD(USER_ID,MOMENT_ID) " +
                              "values('" + forward.User_ID + "','" + forward.Moment_ID + "')";
            int result = cmd.ExecuteNonQuery();

            if (result != 1)//插入出现错误
            {
                status = 2;
                return(Ok(status));
            }

            //插入新动态
            cmd.CommandText = "select * from moment " +
                              "where id='" + forward.Moment_ID + "'";
            rd = cmd.ExecuteReader();
            if (!rd.Read())
            {
                cmd.CommandText = "delete from forward where forward.user_id='" + forward.User_ID + "' and moment_id='" + forward.Moment_ID + "'";
                rd     = cmd.ExecuteReader();
                status = 2;
                return(Ok(status));
            }
            Moment     moment = new Moment();
            GeneralAPI api    = new GeneralAPI();

            moment.ID       = api.NewIDOf("moment");
            moment.SenderID = forward.User_ID;
            moment.Content  = rd["CONTENT"].ToString();
            moment.LikeNum  = 0;
            int forwardNum = Convert.ToInt32(rd["FORWARD_NUM"]);

            moment.ForwardNum = 0;
            moment.CollectNum = 0;
            moment.CommentNum = 0;
            moment.Time       = DateTime.Now.ToString();
            cmd.CommandText   = "select quote_mid" +
                                "from moment" +
                                "where id='" + forward.MOMENT_ID + "'";
            rd = cmd.ExecuteReader();
            rd.Read();
            string quote = rd["QUOTE_MID"].ToString();

            if (quote == null)
            {
                moment.QuoteMID = forward.MOMENT_ID;
            }
            else
            {
                moment.QuoteMID = quote;
            }

            cmd.CommandText = "insert into MOMENT(ID,SENDER_ID,CONTENT,LIKE_NUM,FORWARD_NUM,COLLECT_NUM,COMMENT_NUM,TIME,QUOTE_MID) " +
                              "values('" + moment.ID + "','" + moment.SenderID + "','" + moment.Content + "','" + moment.LikeNum + "'," +
                              "'" + moment.ForwardNum + "','" + moment.CollectNum + "','" + moment.CommentNum + "',TO_DATE('" + moment.Time + "', 'yyyy-mm-dd hh24:mi:ss'),'" + moment.QuoteMID + "')";
            int result1 = cmd.ExecuteNonQuery();

            if (result1 != 1)//插入出现错误
            {
                cmd.CommandText = "delete from forward where forward.user_id='" + forward.User_ID + "' and moment_id='" + forward.Moment_ID + "'";
                rd     = cmd.ExecuteReader();
                status = 2;
                return(Ok(status));
            }
            //插入成功,更改转发数
            forwardNum++;
            cmd.CommandText = "update moment " +
                              "set forward_num= '" + forwardNum +
                              "' where id='" + forward.Moment_ID + "'";
            rd = cmd.ExecuteReader();
            //建立图片的联系
            cmd.CommandText = "select * from picture " +
                              "where moment_id='" + forward.Moment_ID + "'";
            rd = cmd.ExecuteReader();
            while (rd.Read())
            {
                string p_url = rd["URL"].ToString();
                string p_id;
                p_id            = api.NewIDOf("picture");
                cmd.CommandText = "insert into PICTURE(ID,URL,MOMENT_ID) " +
                                  "values('" + p_id + "','" + p_url + "','" + moment.ID + "')";
                int result2 = cmd.ExecuteNonQuery();
                if (result2 != 1)//插入出现错误
                {
                    status = 2;
                    return(Ok(status));
                }
            }

            //关闭数据库连接
            conn.Close();

            //返回信息
            return(Ok(status));
        }