取不出值,折磨三个小时了,求教

qq_27801561 2015-06-24 09:22:51
.cs:
public partial class BookPage : System.Web.UI.Page
{
MongoServer _service1;
MongoDatabase _database1;
MongoClient _client1;
public List<BOOK> bookList;

protected void Page_Load(object sender, EventArgs e)
{
string conn = "mongodb://127.0.0.1:27017";
_client1 = new MongoClient(conn);
_service1 = _client1.GetServer();
_database1 = _service1.GetDatabase("myaspweb");

MongoCollection<BOOK> _books = _database1.GetCollection<BOOK>("book");
var query = Query<BOOK>.GTE(x => x.id, 0);
var result = _books.FindAs<BOOK>(query);
bookList = result.ToList<BOOK>();

Response.Write("<script>alert('" + bookList[1].name + "')</script>");
}
}

public class BOOK
{
//[BsonId]
public int id { get; set; }

public string name { get; set;}
public string message { get; set;}
public string startTime { get; set;}
public string endTime { get; set;}
public int ifOut { get; set;}
public string price { get; set;}
public string picture { get; set;}
}

数据库里面有值,另一个表的插入操作可以
...全文
499 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
江南小鱼 2015-06-25
  • 打赏
  • 举报
回复
引用 6 楼 qq_27801561 的回复:
[quote=引用 5 楼 yue547283947 的回复:] [quote=引用 4 楼 qq_27801561 的回复:] 取出的数据应该有十几条,1就是随便取一个看看,不太会调试-,-
报什么错误没? 如果没报错,又不会断点,就Response.Write 把每个变量及方法返回的结果输出看看是否有问题。 提醒一点,程序员必须学会用断点,因为这个非常重要也非常有用![/quote] 报错就是:索引超出范围。必须为非负值并小于集合大小。 应该就是没有取到值,数据库连接是对的,另一个表的插入操作可以,代码是老师给的,就是取不出来值........ [/quote] 索引超出范围,一般是访问数组、列表时,索引值不在0-【数组/列表个数-1】之间嘛,调试呗。
  • 打赏
  • 举报
回复
对不起, 没注意GTE,上面回复的第二条不对。不过还是建议查看下数据库的值。是否有id字段,记录的id字段是否有值,是否是整数。mongodb的记录是没有约束的,可以随意插入。
  • 打赏
  • 举报
回复
从这句代码: var query = Query<BOOK>.GTE(x => x.id, 0); 1. 确认数据表中有id==0的数据。 2. 如果id是主键,就只会返回一条数据,bookList[1]显然会索引超出范围。 3. 养成设置try catch的习惯。这样易于查找错误到底发生在哪条代码上。
junliking 2015-06-25
  • 打赏
  • 举报
回复
装个反编译,配置到vs里直接跟进去
於黾 2015-06-25
  • 打赏
  • 举报
回复
第三方接口,折磨3个星期都不多
huaneramn 2015-06-25
  • 打赏
  • 举报
回复
折磨3天都正常。。。。。。。。。。。。。。。。。
tianshuaiok 2015-06-25
  • 打赏
  • 举报
回复
短点,慢慢看,就好了
yue547283947 2015-06-24
  • 打赏
  • 举报
回复
引用 6 楼 qq_27801561 的回复:
[quote=引用 5 楼 yue547283947 的回复:] [quote=引用 4 楼 qq_27801561 的回复:] 取出的数据应该有十几条,1就是随便取一个看看,不太会调试-,-
报什么错误没? 如果没报错,又不会断点,就Response.Write 把每个变量及方法返回的结果输出看看是否有问题。 提醒一点,程序员必须学会用断点,因为这个非常重要也非常有用![/quote] 报错就是:索引超出范围。必须为非负值并小于集合大小。 应该就是没有取到值,数据库连接是对的,另一个表的插入操作可以,代码是老师给的,就是取不出来值........ [/quote] 光看你这个代码是看不出问题的。又控制不了你的电脑。你可以问你的老师,及同学。
qq_27801561 2015-06-24
  • 打赏
  • 举报
回复
引用 5 楼 yue547283947 的回复:
[quote=引用 4 楼 qq_27801561 的回复:] 取出的数据应该有十几条,1就是随便取一个看看,不太会调试-,-
报什么错误没? 如果没报错,又不会断点,就Response.Write 把每个变量及方法返回的结果输出看看是否有问题。 提醒一点,程序员必须学会用断点,因为这个非常重要也非常有用![/quote] 报错就是:索引超出范围。必须为非负值并小于集合大小。 应该就是没有取到值,数据库连接是对的,另一个表的插入操作可以,代码是老师给的,就是取不出来值........
yue547283947 2015-06-24
  • 打赏
  • 举报
回复
引用 4 楼 qq_27801561 的回复:
取出的数据应该有十几条,1就是随便取一个看看,不太会调试-,-
报什么错误没? 如果没报错,又不会断点,就Response.Write 把每个变量及方法返回的结果输出看看是否有问题。 提醒一点,程序员必须学会用断点,因为这个非常重要也非常有用!
qq_27801561 2015-06-24
  • 打赏
  • 举报
回复
取出的数据应该有十几条,1就是随便取一个看看,不太会调试-,-
於黾 2015-06-24
  • 打赏
  • 举报
回复
断点调试啊 出了问题不要靠猜 断点跟,看每个变量的值到底是多少,数组里到底有多少个元素,都是什么
_雨后初晴_ 2015-06-24
  • 打赏
  • 举报
回复
  • 打赏
  • 举报
回复
bookList[1]为啥是从索引一开始?不异常?
正宗熊猫哥 2015-06-24
  • 打赏
  • 举报
回复
断点调试,到bookList = result.ToList<BOOK>();这里时看下LIST里面的数据
於黾 2015-06-24
  • 打赏
  • 举报
回复
引用 6 楼 qq_27801561 的回复:
[quote=引用 5 楼 yue547283947 的回复:] [quote=引用 4 楼 qq_27801561 的回复:] 取出的数据应该有十几条,1就是随便取一个看看,不太会调试-,-
报什么错误没? 如果没报错,又不会断点,就Response.Write 把每个变量及方法返回的结果输出看看是否有问题。 提醒一点,程序员必须学会用断点,因为这个非常重要也非常有用![/quote] 报错就是:索引超出范围。必须为非负值并小于集合大小。 应该就是没有取到值,数据库连接是对的,另一个表的插入操作可以,代码是老师给的,就是取不出来值........ [/quote] 代码是老师给的,数据库是谁建的?看看数据库里到底有没有这张表

62,073

社区成员

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

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

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

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