注册 登录
编程论坛 ASP.NET技术论坛

请问这是什么问题,我应该怎么改,关于聊天室系统?

鸿鹄 发布于 2010-04-22 13:41, 1132 次点击
只有本站会员才能查看附件,请 登录
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using MyChatRoom.BusinessLogicLayer;


public partial class MessageView2 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
     
       DataSet ds = MessageControl.SearchTop10(true , Session["CurrentUserName"].ToString());//这一句出错了,不知这么改。错误提示是说
未将对象引用设置到对象的实例。但还是不懂,这个是来选取私聊内容的前十条信息的,公聊的代码跟这个一样,但却一点错都没有,郁闷!
        if (ds != null)
        {
            foreach (DataRow dr in ds.Tables[0].Rows)
            {
                Response.Write("<font color=" + dr["Color"].ToString() + ">");
                Response.Write(dr["CreateTime"].ToString());
                Response.Write("" + dr["FromUserName"].ToString()+"");
                Response.Write(dr["Emotion"].ToString());
                Response.Write("对" + dr["ToUserName"].ToString());
                Response.Write("说道:");
                Response.Write(dr["ContentData"].ToString());
                Response.Write("</font><br>");
            }
        }
    }
}


[ 本帖最后由 鸿鹄 于 2010-4-22 16:23 编辑 ]
7 回复
#2
misswang2010-04-23 09:36
恩。。。这里看不出哪里的问题
#3
visolleon2010-04-25 18:47
Session丢失了吧? 要不就是MessageControl.SearchTop10这个函数有问题。
还有几点建议:
1、判断要判断全点,你只判断ds!=null,那你怎么知道ds里一定会有一个DataTable呢? 所以要判断ds.Tables.Count > 0
2、不知道你MessageControl.SearchTop10这个函数是干嘛用的? 我猜应该是取数据吧? 你写的这个只取10条记录?不能写通用点吗?想取几条就取几条不更好嘛。
3、字符串使用string.format或者用StringBuilder。
#4
yms1232010-04-26 15:38
MessageControl这个不像是系统对象,很像自定义的,MessageView4.aspx这个页面这句话之前有什么代码?
你using引用跟MessageView4.aspx一样吗?
#5
CT02052010-05-22 17:27
未将对象引用至实例,一般错误原因有:
1、ViewState对象为null;
2、Dateset为空;
3、sql语句或Datebase的原因导致DateReader空;
4、声明字符串变量时未赋空值就应用变量;
5、未用new初始化对象;
6、Session对象为空;
7、对控件赋文本值时,值不存在;
8、使用Request.Querystring()时,所获取的对象不存在,或在值为空时未赋初始值;
9、使用FindControl时,控件不存在却没有做预处理;
10、重复定义造成未将对象引用设置到对象的实例报错。
希望对你有帮助,呵呵~~~~
#6
mijia2010-05-23 19:20
我觉得你应该把ToString()放到括号外面去!
#7
王天水2010-05-25 16:06
ds未实例化
#8
bozl2010-05-25 19:00
MessageControl.SearchTop10()
这个方法的代码有错误
1