Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Новый топик    Ответить
 Странные вещи с SqlCeDataReader  [new]
Евгений Муза
Member

Откуда: Мариуполь
Сообщений: 19
Добрый день, встретил такую проблему. Пишу программу под КПК с использованием SQL CE 3.1. Есть база данных, из которой я делаю выборку строки по штрих-коду. Первый ExecuteReader() выполняется за целых 3 секунды, а последующие проходит мгновенно, почему так, понять не могу. Может кто объяснит и поможет исправить это.

Заранее спасибо.

Код:
CREATE TABLE r_ProdMQ(BarCode NVARCHAR(50) NOT NULL PRIMARY KEY, ProdID int NOT NULL, UM NVARCHAR(255) NOT NULL)

SqlCeCommand cmd = new SqlCeCommand("select BarCode, ProdID, UM from r_ProdMQ where BarCode='" + textBox1.Text + "'", connection);
if (connection.State != ConnectionState.Open) connection.Open();
SqlCeDataReader reader = cmd.ExecuteReader();
3 июл 07, 09:36    [4341802]     Ответить | Цитировать Сообщить модератору
 Re: Странные вещи с SqlCeDataReader  [new]
Думающий
Member

Откуда: Месный
Сообщений: 963
Евгений Муза

CREATE TABLE r_ProdMQ(BarCode NVARCHAR(50) NOT NULL PRIMARY KEY, ProdID int NOT NULL, UM NVARCHAR(255) NOT NULL)

SqlCeCommand cmd = new SqlCeCommand("select BarCode, ProdID, UM from r_ProdMQ where BarCode='" + textBox1.Text + "'", connection);
                    if (connection.State != ConnectionState.Open) connection.Open();
                    SqlCeDataReader reader = cmd.ExecuteReader();

В приведенном коде ридер выполнятеся 1 раз, где еще 2?
Скорее всего дело в открытии соединения с базой, последующие разы конект берется из пула. Но лучше без телепатии, а увидеть код.
3 июл 07, 21:33    [4346773]     Ответить | Цитировать Сообщить модератору
 Re: Странные вещи с SqlCeDataReader  [new]
Евгений Муза
Member

Откуда: Мариуполь
Сообщений: 19
В приведенном коде ридер выполнятеся 1 раз, где еще 2?


Я имею ввиду, после второго и последующих выполнениях операций.
4 июл 07, 14:55    [4350134]     Ответить | Цитировать Сообщить модератору
 Re: Странные вещи с SqlCeDataReader  [new]
Евгений Муза
Member

Откуда: Мариуполь
Сообщений: 19
Открытие базы выполняется быстро, ставил счетчик, тормозит именно при выполнении ридера
4 июл 07, 14:55    [4350140]     Ответить | Цитировать Сообщить модератору
 Re: Странные вещи с SqlCeDataReader  [new]
winsky!
Member

Откуда: Киев
Сообщений: 5120
а много записев в r_ProdMQ?
4 июл 07, 15:55    [4350628]     Ответить | Цитировать Сообщить модератору
 Re: Странные вещи с SqlCeDataReader  [new]
Думающий
Member

Откуда: Месный
Сообщений: 963
winsky!
а много записев в r_ProdMQ?

Вы к кешу сервера клоните?
4 июл 07, 16:46    [4351080]     Ответить | Цитировать Сообщить модератору
 Re: Странные вещи с SqlCeDataReader  [new]
winsky!
Member

Откуда: Киев
Сообщений: 5120
какой кеш, у вас же CE?
4 июл 07, 17:30    [4351471]     Ответить | Цитировать Сообщить модератору
 Re: Странные вещи с SqlCeDataReader  [new]
winsky!
Member

Откуда: Киев
Сообщений: 5120
хотя может там тоже что-то кешируется? но сумлеваюсь....
ща почитаю любимую книгу мсдн
4 июл 07, 17:31    [4351480]     Ответить | Цитировать Сообщить модератору
 Re: Странные вещи с SqlCeDataReader  [new]
winsky!
Member

Откуда: Киев
Сообщений: 5120
как вариант (не уверен что поможет, но за попробовать денег не берут) попобуйте вызвать метод Prepare перед первым вызовом команды
4 июл 07, 17:44    [4351572]     Ответить | Цитировать Сообщить модератору
 Re: Странные вещи с SqlCeDataReader  [new]
Думающий
Member

Откуда: Месный
Сообщений: 963
winsky!
какой кеш, у вас же CE?

У меня не СЕ)) С СЕ не работал, но кеш действительно там врятли я думаю)
4 июл 07, 20:58    [4352196]     Ответить | Цитировать Сообщить модератору
 Re: Странные вещи с SqlCeDataReader  [new]
Евгений Муза
Member

Откуда: Мариуполь
Сообщений: 19
winsky!
а много записев в r_ProdMQ?

Количество записей: 35000
5 июл 07, 09:09    [4352887]     Ответить | Цитировать Сообщить модератору
 Re: Странные вещи с SqlCeDataReader  [new]
Евгений Муза
Member

Откуда: Мариуполь
Сообщений: 19
winsky!
как вариант (не уверен что поможет, но за попробовать денег не берут) попобуйте вызвать метод Prepare перед первым вызовом команды

Метод Prepare какого класса?
5 июл 07, 09:12    [4352898]     Ответить | Цитировать Сообщить модератору
 Re: Странные вещи с SqlCeDataReader  [new]
winsky!
Member

Откуда: Киев
Сообщений: 5120
SqlCeCommand
5 июл 07, 10:27    [4353331]     Ответить | Цитировать Сообщить модератору
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Ответить