C# 奥姆斯

C# 奥姆斯,c#,nullreferenceexception,C#,Nullreferenceexception,在您的代码中,您正在一个数据集中的所有记录上循环(您正在做两次),并覆盖hotelId的值。也就是说,您仅使用hotelId和room数据集中的最后一条记录在哪一行得到错误?h.rooms.Add(r);我在节目中也提到,提供一个。sql连接与问题完全无关。是的,你提供了,但是你也提供了太多不相关的信息,以至于它没有显示在屏幕上。实际上,在序列化对象之前,你会遇到异常。因此,这与json序列化毫无关系,标题也毫无意义;我在节目中也提到,提供一个。sql连接与问题完全无关。是的,你提供了,但是你也

在您的代码中,您正在一个数据集中的所有记录上循环(您正在做两次),并覆盖hotelId的值。也就是说,您仅使用hotelId和room数据集中的最后一条记录

在哪一行得到错误?h.rooms.Add(r);我在节目中也提到,提供一个。sql连接与问题完全无关。是的,你提供了,但是你也提供了太多不相关的信息,以至于它没有显示在屏幕上。实际上,在序列化对象之前,你会遇到异常。因此,这与json序列化毫无关系,标题也毫无意义;我在节目中也提到,提供一个。sql连接与问题完全无关。是的,你提供了,但是你也提供了太多不相关的信息,以至于它没有显示在屏幕上。实际上,在序列化对象之前,你会遇到异常。因此,这与json序列化毫无关系,标题也毫无意义。将null传递给list的Add是完全有效的。实际上,您仍然认为r是罪魁祸首,但在所讨论的行中,r不可能导致nullref异常。但是,field rooms是未初始化的,因此为null传递null以添加listNot实际上您仍然认为r是罪魁祸首,但是在所讨论的行中,r不可能导致nullref异常。然而,现场会议室尚未初始化,因此,谢谢您,先生,。这很有帮助。谢谢你,先生,。这很有帮助。
{
  "accessKey": "7eb228097576abf56968e9845ab51b90",
  "channelId": "103",
  "hotels": [
    {
      "hotelId": "2",
      "rooms": [
        {
          "roomId": "1"
        }
      ]
    }
  ]
}
public class RootObject
{
    public string accessKey { get; set; }
    public string channelId { get; set; }
    public List<Hotel> hotels { get; set; }            
}
public class Hotel
{
    public string hotelId { get; set; }
    public List<Room> rooms { get; set; }           
}
public class Room
{
    public string roomId { get; set; }           
}
    string s = "";
    RootObject ro = new RootObject();
    ro.accessKey = "7eb228097576abf56968e9845ab51b90";
    ro.channelId = "103";
    ro.hotels = new List<Hotel>();

    Hotel h = new Hotel();
    Room r = new Room();

    string config = "server=localhost;username=someuser;password=somepwd;database=db";

    MySqlConnection connection = new MySqlConnection(config);

    string query = "select * from test1";

    MySqlCommand command = new MySqlCommand(query, connection);
    connection.Open();
    MySqlDataReader Reader = command.ExecuteReader();
    while (Reader.Read())
    {
         r.roomId = Reader[2].ToString();
    }
    connection.Close();

    query = "select * from test1";

    command = new MySqlCommand(query, connection);
    connection.Open();
    Reader = command.ExecuteReader();
    while (Reader.Read())
    {
        h.hotelId = Reader[1].ToString();
    }
    connection.Close();

    h.rooms.Add(r);       // Object reference not set to an instance of an object Error

    ro.hotels.Add(h);


    JavaScriptSerializer js = new JavaScriptSerializer();
    s = js.Serialize(ro);

    return s;
    }
public class Hotel
{
    public Hotel()
    {
        rooms = new List<Room>();
    }

    public string hotelId { get; set; }

    public List<Room> rooms { get; set; }           
}
Room r = new Room();
r.roomId = 1;
public class Hotel
{
    public Hotel(string hotelId){
         this.hotelId = hotelId;
         this.rooms = New List<Room>();
    }

    public string hotelId { get; private set; }
    public List<Room> rooms { get; private set; }           
}