DataSource DataView 问题 急

coloeme 2004-09-11 11:59:39
private void Page_Load (Object Sender, EventArgs E)
{
Check_User();
string UserName = SgemaCookie["UserName"].ToString();
string StrSql = "Select * From UserLog Where UserName = '"+ UserName +"' Order By ID Desc";
GetConn getConn = new GetConn();
SqlConnection Conn = getConn.GetConnection();
SqlDa = new SqlDataAdapter(StrSql, Conn);
Conn.Open();
Ds = new DataSet();
SqlDa.Fill(Ds, "UserLog");
//Response.Write(Ds.Tables["UserLog"].Rows[4]["Phone"].ToString());
//Response.End();
LogRepeater.DataSource = Ds.Tables[0].DefaultView;
LogRepeater.DataBind();
}
Conn.Close();
}

我写的语法没有问题,也编译通过可是却出错: 未将对象引用设置到对象的实例。

源错误:

行 504: //Response.Write(Ds.Tables["UserLog"].Rows[4]["Phone"].ToString());
行 505: //Response.End();
行 506: LogRepeater.DataSource = Ds.Tables[0].DefaultView; 这行是红色的出错行
行 507: LogRepeater.DataBind();
行 508: Conn.Close();

可是我用 504行测试的结果却可以读出来啊,Ds.Tables[0].Rows.Count 也返回49 ,
不解请解答

...全文
192 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangrenda 2004-09-11
  • 打赏
  • 举报
回复
唉,
coloeme 2004-09-11
  • 打赏
  • 举报
回复
告诉大家一个坏消息
我在aspx页面里面的 Repeater Id 写错了

哈哈 问题解决了

麻烦各位了 也谢谢各位

结贴 给分
passacaglia 2004-09-11
  • 打赏
  • 举报
回复
1。你的LogRepeater还有没有用到其它事件?如databound这里出错
2。很大可能是你在aspx里Repeater里的字段在你的Ds.Tables[0].DefaultView里找不到,就会出现未将对象引用设置到对象的实例的错误
coloeme 2004-09-11
  • 打赏
  • 举报
回复
To:飞鸟
试过了的
不行啊
FlyBirdInLife 2004-09-11
  • 打赏
  • 举报
回复
LogRepeater.DataSource = Ds.Tables[0].DefaultView
改为
LogRepeater.DataSource = Ds.Tables["UserLog"].DefaultView
试试吧,
coloeme 2004-09-11
  • 打赏
  • 举报
回复
好的
我试试看
wangrenda 2004-09-11
  • 打赏
  • 举报
回复
用DataTable绑一下,看有没有问题,然后在找找毛病
coloeme 2004-09-11
  • 打赏
  • 举报
回复
To: 飞鱼
public void Check_User()//检测用户
{
SgemaCookie = Request.Cookies["Sgema"];
if (SgemaCookie == null || SgemaCookie.ToString() == ""){
Response.Write("<script>alert('你还没有登陆或注册,请登陆或注册!');location.href='index.aspx';<" + "/script>");
Response.End();
}
else{
return;
}
}

已经检测过了
------------------------
在绑定时用
Ds.Tables[UserLog].DefaultView

LogRepeater.DataSource = Ds;
LogRepeater.DataMember = "UserLog";
------------------------
我也试过了 不行的
penning 2004-09-11
  • 打赏
  • 举报
回复
你作操作时应先判断一下
if(SgemaCookie["UserName"]!=null)
在绑定时用
Ds.Tables[UserLog].DefaultView

LogRepeater.DataSource = Ds;
LogRepeater.DataMember = "UserLog";

yt_net 2004-09-11
  • 打赏
  • 举报
回复
确实很奇怪,楼上的代码和楼主的好像没有什么区别吧,如果不是cookie的事,真的很难找出来,关注一下
coloeme 2004-09-11
  • 打赏
  • 举报
回复
To: roapzone(宗璞)
------------------------------
SqlDa.Fill(Ds, "UserLog");
这表示你填从DS为UserLog的表!
LogRepeater.DataSource = Ds.Tables[0].DefaultView;
这句你改成:
LogRepeater.DataSource = Ds.Tables["UserLog"].DefaultView;
------------------------------
我试过了 不行

下面的变量跟踪我再试试看

可是我可以输出单个值啊 为什么整个DataView绑定 却不可以?
coloeme 2004-09-11
  • 打赏
  • 举报
回复
这样肯定不对的

roapzone 2004-09-11
  • 打赏
  • 举报
回复

SqlDa.Fill(Ds, "UserLog");
这表示你填从DS为UserLog的表!
LogRepeater.DataSource = Ds.Tables[0].DefaultView;
这句你改成:
LogRepeater.DataSource = Ds.Tables["UserLog"].DefaultView;

还有注意你的UserName的方式,
string UserName = SgemaCookie["UserName"].ToString();
string StrSql = "Select * From UserLog Where UserName = '"+ UserName +"' Order By ID Desc";
你debug跟一下这个变量!!


wangrenda 2004-09-11
  • 打赏
  • 举报
回复
Ds.Tables[UserLog].DefaultView?
coloeme 2004-09-11
  • 打赏
  • 举报
回复
可是我用 第504行测试的结果却可以读出来啊,
Response.Write(Ds.Tables["UserLog"].Rows[4]["Phone"].ToString());
读出来值为 32823949

Response.Write(Ds.Tables[0].Rows.Count); 也返回49

而且 UserName 也可以读出来


wangrenda 2004-09-11
  • 打赏
  • 举报
回复
用cookie了?
如果是,实例了没?
先实例化,不为null在调用
coloeme 2004-09-11
  • 打赏
  • 举报
回复
还是出错
刚刚修正的正是 没有编译错误的 代码
但是却出现 未将对象引用设置到对象的实例。
错误的代码

请解答
coloeme 2004-09-11
  • 打赏
  • 举报
回复
o
刚忘了删除了
那个是用来测试时候加的没去干净
呵呵

private void Page_Load (Object Sender, EventArgs E)
{
Check_User();
string UserName = SgemaCookie["UserName"].ToString();
string StrSql = "Select * From UserLog Where UserName = '"+ UserName +"' Order By ID Desc";
GetConn getConn = new GetConn();
SqlConnection Conn = getConn.GetConnection();
SqlDa = new SqlDataAdapter(StrSql, Conn);
Conn.Open();
Ds = new DataSet();
SqlDa.Fill(Ds, "UserLog");
//Response.Write(Ds.Tables["UserLog"].Rows[4]["Phone"].ToString());
//Response.End();
LogRepeater.DataSource = Ds.Tables[0].DefaultView;
LogRepeater.DataBind();
Conn.Close();
}
realljx 2004-09-11
  • 打赏
  • 举报
回复
楼主的代码只有上面一个错误 好像。
realljx 2004-09-11
  • 打赏
  • 举报
回复
LogRepeater.DataBind();
}
Conn.Close();

这里怎么会有一个 "}"?

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧