2009-07-23 Veerapuram Varadhan <vvaradhan@novell.com>
[mono.git] / mcs / class / System.Data / System.Data / XmlSchemaDataImporter.cs
index 0845b5fcf7f99b72855dea6da16bc3680065c1f8..564c99010d0cd8c2d8626f657af9edf7db25d88e 100644 (file)
@@ -1245,8 +1245,8 @@ namespace System.Data
                        //Console.WriteLine ("In HandleDataSourceAnnotation... ");
                        string providerName = null;
                        string connString = null;
-                       DbProviderFactory provider;
-                       XmlElement e;
+                       DbProviderFactory provider = null;
+                       XmlElement e, tablesElement = null;
                        
                        foreach (XmlNode n in el.ChildNodes) {
                                e = n as XmlElement;
@@ -1257,23 +1257,21 @@ namespace System.Data
                                if (e.LocalName == "Connections") {
                                        providerName = ((XmlElement)e.FirstChild).GetAttribute ("Provider");
                                        connString = ((XmlElement)e.FirstChild).GetAttribute ("AppSettingsPropertyName");
+                                       provider = DbProviderFactories.GetFactory (providerName);
                                        continue;
                                }
                                // #325464 debugging
                                //Console.WriteLine ("ProviderName: " + providerName + "Connstr: " + connString);
                                
-                               provider = DbProviderFactories.GetFactory (providerName);
+                               if (e.LocalName == "Tables")
+                                       tablesElement = e;
+                       }
                                
-                               if (e.LocalName == "Tables") {
-                                       foreach (XmlNode node in e.ChildNodes) {
-                                               ProcessTableAdapter (node as XmlElement, provider, connString);
-                                       }
+                       if (tablesElement != null && provider != null) {
+                               foreach (XmlNode node in tablesElement.ChildNodes) {
+                                       ProcessTableAdapter (node as XmlElement, provider, connString);
                                }
-                               // #325464 debugging
-                               //Console.WriteLine (e.LocalName);
                        }
-                       // #325464 debugging
-                       //Console.WriteLine ("... exit");
                }
                
                private void ProcessTableAdapter (XmlElement el, DbProviderFactory provider, string connStr)