If you debug your code and place these lines after reading the file
For Each xxx As System.Data.DataTable In nodeDataset.Tables
Console.WriteLine("{0} : {1}", xxx.ToString(), xxx.Rows.Count)
Next
You should get the following output
ROOT : 1
EnqCC_ENQ_COUNTS : 1
ROW : 24
EnqCC_ADDRESS : 1
EnqCC_BRANCHES : 1
EnqCC_LOANS : 1
EnqCC_DMATCHES : 1
EnqCC_PREVENQ : 1
EnqCC_TELEPHONE : 1
EnqCC_SRCHCRITERIA : 1
EnqCC_EMPLOYER : 1
EnqCC_ACTIVITIES : 1
EnqCC_STATS : 1
EnqCC_NLR_SUMMARY : 1
Summary : 1
NLR_Past_12_Months : 1
NLR_Past_24_Months : 1
NLR_Past_36_Months : 1
CCA_Past_12_Months : 1
CCA_Past_24_Months : 1
CCA_Past_36_Months : 1
Notice the table called ROW - this is actually the data from the EnqCC_ENQ_Counts node. Unfortunately the EnqCC_LOANS also has sub-nodes called ROW - this second table is not being loaded into the DataSet.
One way around this is to target the specific node that you require and load that into the dataset e.g.
Dim nodeDataset As New DataSet
Dim filepath As String = "C:\test\Enq_8001060716081_58196342.xml"
Dim xmlDoc As XmlDocument = New XmlDocument()
xmlDoc.Load(filepath)
Dim requiredNode As XmlNode = xmlDoc.SelectSingleNode("ROOT/EnqCC_LOANS")
Dim xmlRdr As XmlNodeReader = New XmlNodeReader(requiredNode)
nodeDataset.ReadXml(xmlRdr)
DataGridView1.DataSource = nodeDataset
DataGridView1.DataMember = "ROW"
xmlRdr.Close()