2013-05-20 1 views
1
public void SetConnection(string text1, string text2, string text3, string text4, string text5, string text6, string text7) 
    { 


     connectionString1 = "Initial Catalog=testdb; Data Source=work\\sqlexpress"; 




     database = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source='c:\\Users\\test.xls';Extended Properties= \"Excel 8.0;HDR=Yes;IMEX=1\";"); 
     database.Open(); 
     database1 = new OleDbConnection("Provider=SQLOLEDB.1;" + connectionString1); 
     database1.Open(); 
    } 

data1 = DataAccess.DatabaseTables("SELECT * from [Sheet1$])", DataAccess.database); 

public DataTable DatabaseTables(string QueryString, OleDbConnection DataConnection) 
    { 

     OleDbCommand SQLQuery = new OleDbCommand(); 
     DataTable data = null; 
     SQLQuery.Connection = null; 
     OleDbDataAdapter dataAdapter = null; 
     SQLQuery.CommandText = QueryString; 
     SQLQuery.Connection = DataConnection; 
     data = new DataTable(); 
     dataAdapter = new OleDbDataAdapter(SQLQuery); 

     dataAdapter.Fill(data); 
     return data; 
    } 

Je reçois une exception "Syntax error in from clause" pour la ligne de code commençant par data1. Cette ligne appelle la fonction ci-dessous DatabaseTables qui génère cette exception. J'ai également inclus la chaîne de connexion qui utilise jet etc dans le SetConnection fn. Je pense que le problème pourrait être la chaîne de connexion elle-même. Actuellement, je dois laisser le fichier Excel ouvert pour éviter une erreur "impossible à déchiffrer". J'ai essayé le pilote ACE mais j'ai eu des erreurs. Le livre de travail Excel est enregistré sous la forme d'un classeur 97-03.Syntaxe Erreur dans la clause From Excel

+0

Votre feuille est-elle nommée 'Sheet1'? –

+0

Oui la feuille est Sheet1 – Arantuath

+1

'(' "SELECT * from [Sheet1 $]') '", DataAccess.database ')'; il manque une parenthèse, voir la mise en surbrillance. – Rahul

Répondre

1

changement

data1 = DataAccess.DatabaseTables("SELECT * from [Sheet1$])", DataAccess.database); 

avec

data1 = DataAccess.DatabaseTables("SELECT * from [Sheet1$]", DataAccess.database); 

Il y a un support de fermeture supplémentaire.

espérons que cela fonctionne.

+0

Oui, merci beaucoup. Je pense que je vais prendre une promenade de cinq minutes d'air frais. – Arantuath

+0

he il, votre accueil. – Rahul

Questions connexes