2015-08-12 2 views
0

Я использовал хранилище базы данных в своем приложении для Windows Mobile 6.5 с использованием SQL Server CE.Unspecified Ошибка при попытке ExecuteReader на SQL Server CE

Удалось установить файл CAB SQL Server CE на устройстве (Motorola MC65).

Удалось создать файл базы данных и создать таблицы. Вставка также может быть выполнена.

Однако, когда я пытаюсь запустить ExecuteReader() читать записи, я попал следующее сообщение об ошибке:

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

не знаю, почему это происходит. Поскольку insert может быть выполнен, я думал, что это не должно быть проблемой подключения или привилегии.

Код чтения, как показано ниже:

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); 
} 

Исключение брошено на линии, где cmd.ExecuteReader() выполнения.

Любые указатели оцениваются. Благодарю.

+0

Кроме окружая ExecuteReader по try/catch, add; в конце каждого sql-оператора. – josef

ответ

1

Внедрение правильной обработки ошибок для SqlCeExceptions! Ошибка зарегистрирована здесь https://technet.microsoft.com/en-us/library/ms172350(v=sql.110).aspx

Большие объекты (ntext и image) не могут использоваться в предложениях ORDER BY.

Может быть, вы должны переопределить столбец как NVARCHAR (4000) (в настоящий момент NTEXT), или перефразировать запрос с использованием:

ORDER BY CAST(Name as nvarchar(4000)) 

Но это приведет к сканирование таблицы

+0

спасибо за ссылку документа! – ipohfly