string messageString = "";//记录未读消息的Id
            string messageTime = "";//读取消息发送的时间
            string messageText = "";//消息的内容
            string MessageSend = "";//显示发送的信息
            Messages message = new Messages();
            message = mm.ShowMessage(hostId, users.Id);
            txtSend.Clear();
            foreach (Messages mess in message)
            {
                messageString += mess.Id + "_";                messageText = mess.Message;                messageTime = mess.Messagetime;                MessageSend = string.Format("\n{0}\t{1}\n", users.NickName, messageTime);
                txtGet.AppendText(MessageSend);//追加文本
                txtGet.AppendText(messageText + "  \n");
            }      public Messages ShowMessage(int hostid,int friendid)
        {
            Messages message = new Messages();
            message = ms.ShowMessage(hostid,friendid);
            return message;
        }      public Messages ShowMessage(int hostid, int friendid)
        {
            Messages message = new Messages();
            using (SqlConnection conn = new SqlConnection(connString))
            {
                SqlCommand cmd = new SqlCommand("usp_SelectMessagesIdAndMessageAndMessageTime", conn);
                cmd.CommandType = CommandType.StoredProcedure;                cmd.Parameters.Add("@fromUserId", SqlDbType.Int).Value = friendid;
                cmd.Parameters.Add("@toUserId", SqlDbType.Int).Value = hostid;
                conn.Open();
                using (SqlDataReader reader = cmd.ExecuteReader())
                {
                    if (reader.HasRows)
                    {
                        while (reader.Read())
                        {
                            message.Id = Convert.ToInt32(reader["id"]);
                            message.Message = reader["Message"].ToString();
                            message.Messagetime = Convert.ToDateTime(reader["MessageTime"]).ToString();
                        }
                    }
                }
            }
            return message;
        }        这是用三层开发是碰到的,运行时提示说“MyQQModels.Messages”不包含“GetEnumerator”的公共定义,因此 foreach 语句不能作用于“MyQQModels“        求解决。。

解决方案 »

  1.   

    提示已经很清楚了。MyQQModels.Messages不包含“GetEnumerator”的公共定义一般可以用于Foreach的类型都会实现IEnumerable接口。检查你的MyQQModels.Messages的类型。
      

  2.   

    这个代码的逻辑其实令人费解。当返回记录有多条时,你每一次都用后边的记录值重新覆盖message对象的属性,最终只是返回最有一条记录对应的消息对象,这有什么意义呢?
      

  3.   

    最终只是返回最有一条记录对应的消息对象  -->  最终只是返回最后一条记录对应的消息对象我想这个方法大概是返回message对象集合而不是单个message对象吧。