2010-12-02 104 views
0

Im ayant un problème avec le code suivant:Aucune table renvoyée par une requête SQL. Comment cela pourrait-il arriver?

try 
     { 
      OleDbConnection Conn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Database.accdb;Jet OLEDB:Database Password=LuzDary;"); 
      OleDbDataAdapter Data = new OleDbDataAdapter("SELECT * FROM Articulos", Conn); 
      DataSet DSet = new DataSet(); 
      Conn.Open(); 
      Data.Fill(DSet); 
      Conn.Close(); 
      _Articulos = DSet.Tables["Articulos"]; 
     } 
     catch(Exception ex) 
     { 
      MessageBox.Show(ex.Message); 
     } 

Le try/catch est là parce que mon VStudio 2010 l'installation isnt tout à fait capable de détecter des exceptions COM en quelque sorte (eu le même problème la création de la base de données avec ADOX, l'exception n'était pas pris, le code continuait à fonctionner de manière réactive, mais la base de données n'était jamais écrite sur le disque).

Le DB a déjà la table "Articulos", et j'ai inséré manuellement quelques enregistrements là, mais si je foreach le DataSet, je reçois seulement une Table nommée "Table". Cela devient frustrant maintenant :(

Répondre

0

DSet.Tables [0] .Rows est ce que vous voulez.

Voilà ce que je veux dire. Avec

_Articulos = DSet.Tables[0]; 

que, _Articulos.Rows doit être renseigné Avec les enregistrements dans votre base de données

+0

Pour le dire mieux, la table dans votre DataSet nommé "Table" est en fait la table que vous voulez – seekerOfKnowledge

+0

_Articulos est un DataTable, donc .Rows ne fonctionnera pas .... et ni [0 ] ni [Table] travaillé, encore je obtiens null: S – Machinarius

+0

Elaboré dans le un swer. – seekerOfKnowledge