title: System.OutOfMemoryException being thrown
body: <p>I am getting a system.outofmemory exception in my code:</p>
  
  <pre><code>While r1.Read()
                      menu1id = r1("id")
                      db.AddInParameter(command2, "@menu1id", DbType.Int32, menu1id)
                      r2 = db.ExecuteReader(command2)
                      command2.Parameters.Clear()
                      menu1heading = r1("Heading")
                      If r1("url") IsNot Nothing And r1("moduleid") = 0 Then
                          url = r1("url").ToString
  
                          If InStr(url, "file:///") &gt; 0 Then
                              Dim builder As New StringBuilder
                              builder.Append("&lt;a href=")
                              builder.Append(r1("url"))
                              builder.Append(" target=")
                              builder.Append(r1("urltarget"))
                              builder.Append("&gt;")
                              builder.Append(menu1heading)
                              builder.Append("&lt;/a&gt;")
                              level1.Add(builder.ToString)
                          Else
                              Dim builder As New StringBuilder
                              builder.Append("&lt;a href=http://")
                              builder.Append(r1("url"))
                              builder.Append(" target=")
                              builder.Append(r1("urltarget"))
                              builder.Append("&gt;")
                              builder.Append(menu1heading)
                              builder.Append("&lt;/a&gt;")
                              level1.Add(builder.ToString)
                          End If
                      Else
                          Dim builder As New StringBuilder
                          builder.Append("&lt;a href=~/Default.aspx?id=")
                          builder.Append(r1("id"))
                          builder.Append("&gt;")
                          builder.Append(menu1heading)
                          builder.Append("&lt;/a&gt;")
                          level1.Add(builder.ToString)
                      End If
  
  
                      While r2.Read
                          menu2id = r2("id")
                          db.AddInParameter(command3, "@menu2id", DbType.Int32, menu2id)
                          r3 = db.ExecuteReader(command3)
                          command3.Parameters.Clear()
                          menu2heading = r2("Heading")
  
                          If r2("url") IsNot Nothing And r2("moduleid") = 0 Then
                              Dim builder As New StringBuilder
                              builder.Append("&lt;a href=http://")
                              builder.Append(r2("url"))
                              builder.Append(" target=")
                              builder.Append(r2("urltarget"))
                              builder.Append(menu2heading)
                              builder.Append("&lt;/a&gt;")
                              level2.Add(builder.ToString)
                          Else
                              Dim builder As New StringBuilder
                              builder.Append("&lt;a href=~/Default.aspx?id=")
                              builder.Append(r2("id"))
                              builder.Append("&gt;")
                              builder.Append(menu2heading)
                              builder.Append("&lt;/a&gt;")
                              level2.Add(builder.ToString)
                          End If
  
  
                          While r3.Read
                              menu3heading = r3("Heading")
                              menu3id = r3("id")
                              If r3("url") IsNot Nothing And r3("moduleid") = 0 Then
                                  Dim builder As New StringBuilder
                                  builder.Append("&lt;a href=http://")
                                  builder.Append(r3("url"))
                                  builder.Append(" target=")
                                  builder.Append(r3("urltarget"))
                                  builder.Append("&gt;")
                                  builder.Append(menu3heading)
                                  builder.Append("&lt;/a&gt;")
                                  level3.Add(builder.ToString)
                              Else
                                  Dim builder As New StringBuilder
                                  builder.Append("&lt;a href=~/Default.aspx?id=")
                                  builder.Append(r3("id"))
                                  builder.Append("&gt;")
                                  builder.Append(menu3heading)
                                  builder.Append("&lt;/a&gt;")
                                  level3.Add(builder.ToString)
                              End If
  
                          End While
  
                          r3.Close()
                      End While
  
                      r2.Close()
                  End While
  
                  r1.Close()
              End While
              r0.Close()
  </code></pre>
  
  <p>Please can you tell me how I go about diagnosing and fixing this exception? thanks a lot.</p>