2015-08-12 2 views
0

J'ai implémenté un stockage de base de données sur mon application pour Windows Mobile 6.5 à l'aide de SQL Server CE.Erreur non spécifiée lors de la tentative d'ExecuteReader sur SQL Server CE

Avait réussi à installer le fichier SQL Server CE CAB sur l'appareil (Motorola MC65).

Géré pour créer un fichier de base de données et créer des tables. Insérer peut également être exécuté.

Cependant, lorsque je tente d'exécuter ExecuteReader() de lire les enregistrements, j'ai frappé l'erreur suivante:

Error Code: 80004005
Message : Unspecified error
Minor Err.: 25534
Source : SQL Server Compact ADO.NET Data Provider

Aucune idée pourquoi cela se passe. Puisque insert peut être exécuté, je pensais que cela ne devrait pas être un problème de connexion ou de privilège.

Le code de lecture est comme ci-dessous:

openConnection(); 
SqlCeCommand cmd = conn.CreateCommand(); 
cmd.CommandText = "SELECT NAME FROM GROUP_INFO ORDER BY NAME "; 

SqlCeDataReader reader = cmd.ExecuteReader(); 

while (reader.Read()) 
{ 
     string groupName = reader.GetString(0); 
     listGroup.Add(groupName); 
} 

L'exception est levée sur la ligne où cmd.ExecuteReader() est exécuté.

Les pointeurs sont appréciés. Merci.

+0

côté entourant la ExecuteReader par essayer/attraper, ajouter un; à la fin de chaque déclaration SQL. – josef

Répondre

1

Implémentez la gestion correcte des erreurs pour SqlCeExceptions! L'erreur est documentée ici https://technet.microsoft.com/en-us/library/ms172350(v=sql.110).aspx

Les grands objets (ntext et image) ne peuvent pas être utilisés dans les clauses ORDER BY.

Peut-être que vous devez redéfinir la colonne nvarchar (4000) (il est actuellement ntext), ou reformulez la requête en utilisant:

ORDER BY CAST(Name as nvarchar(4000)) 

Mais cela entraînera un balayage de table

+0

merci pour le lien du document! – ipohfly