Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.224.37.89] |
|
Страницы: (2) [1] 2 все ( Перейти к последнему сообщению ) |
Сообщ.
#1
,
|
|
|
В обозревателе серверов есть файл базы данных Database1.sdf (создан в той же Visual Studio 2012). Как работать с этой базой? Когда создавал базу через SQL Server, для работы с ней использовал OleDbConnection. А тут что использовать? SqlConnection? Что тогда в ConnectionString указывать? Database1.sdf в свойствах имеет только: Data Source="C:\Users\Alex\Visual Studio 2012\Projects\MyApp\MyApp\Database1.sdf".
|
Сообщ.
#2
,
|
|
|
Использйте для этих случаев SqlCeConnection, SqlCeCommand и т.д. Это классы которые специально сделаны для роботы с SQL Server CE.
|
Сообщ.
#3
,
|
|
|
Цитата Craft @ Использйте для этих случаев SqlCeConnection, SqlCeCommand и т.д. Это классы которые специально сделаны для роботы с SQL Server CE. Спасибо. Не могу понять в чем ошибка: SqlCeDataReader reader_ce = null; SqlCeCommand command_ce = null; sqlCeConnection1.Open(); // OK! command_ce = new SqlCeCommand("", sqlCeConnection1); command_ce.CommandText = "SELECT Firstname FROM Table WHERE Lastname = 'Jones'"; reader_ce = command_ce.ExecuteReader(); // Error! while (reader_ce.Read()) { // Обработка результатов выборки } reader_ce.Close(); Ошибка такая: Необработанное исключение типа "System.Data.SqlServerCe.SqlCeException" в System.Data.SqlServerCe.dll |
Сообщ.
#4
,
|
|
|
Не используйте служебные слова (Table) как имена об'ектов.
|
Сообщ.
#5
,
|
|
|
их просто надо экранировать скобками вида
"SELECT [Firstname] FROM [Table] WHERE [Lastname] = 'Jones'" |
Сообщ.
#6
,
|
|
|
Цитата nvn @ их просто надо экранировать скобками вида "SELECT [Firstname] FROM [Table] WHERE [Lastname] = 'Jones'" Спасибо, помогло. Теперь у меня такой вопрос. Требует ли база *.mdf больше служб, чем *.sdf? То есть, если я буду делать установщик и распространять его, что выгоднее: использовать базу, основанную на службах (*.mdf) или локальную базу (*.sdf)? База состоит из 2-х таблиц! Кроме SELECT ничего не требуется. |
Сообщ.
#7
,
|
|
|
Попробуйте так:
command_ce = new SqlCeCommand("SELECT Firstname FROM Table WHERE Lastname = 'Jones'", sqlCeConnection1); Цитата System.Data.SqlServerCe.SqlCeException Какое сообщение в исключении? Приложение однопоточное? sqlCeConnection1 создается в том-же потоке что и SqlCeCommand? |
Сообщ.
#8
,
|
|
|
Цитата maxim84_ @ Попробуйте так: command_ce = new SqlCeCommand("SELECT Firstname FROM Table WHERE Lastname = 'Jones'", sqlCeConnection1); Цитата System.Data.SqlServerCe.SqlCeException Какое сообщение в исключении? Приложение однопоточное? sqlCeConnection1 создается в том-же потоке что и SqlCeCommand? Спасибо за желание помочь, но вы тему не читали. |
Сообщ.
#9
,
|
|
|
Скрытый текст Ядрен батон... чудеса FF продолжаются! Сорри, когда читал не видел 7-го и 5-го сообщения... Цитата То есть, если я буду делать установщик и распространять его, что выгоднее: использовать базу, основанную на службах (*.mdf) или локальную базу (*.sdf)? sdf - роднее для SQL Ce. mdf - это файл базы для SQL Express и выше, а значит в ней может быть много того, чего не может обработать SQL Ce. Следовательно, лучше sdf, ИМХО. |
Сообщ.
#10
,
|
|
|
Цитата maxim84_ @ Скрытый текст Ядрен батон... чудеса FF продолжаются! Сорри, когда читал не видел 7-го и 5-го сообщения... Цитата То есть, если я буду делать установщик и распространять его, что выгоднее: использовать базу, основанную на службах (*.mdf) или локальную базу (*.sdf)? sdf - роднее для SQL Ce. mdf - это файл базы для SQL Express и выше, а значит в ней может быть много того, чего не может обработать SQL Ce. Следовательно, лучше sdf, ИМХО. Т.е для пользователя выгоднее SQL CE, т.к. меньше служб сторонних устанавливать... |
Сообщ.
#11
,
|
|
|
Цитата Т.е для пользователя выгоднее SQL CE, т.к. меньше служб сторонних устанавливать... Вообще ничего устанавливать не нужно. Только поставляйте движок SQL CE + сама база. SQL CE для этого и предназначен, чтобы хранить небольшие, локальные базы данных. |
Сообщ.
#12
,
|
|
|
Цитата maxim84_ @ Цитата Т.е для пользователя выгоднее SQL CE, т.к. меньше служб сторонних устанавливать... Вообще ничего устанавливать не нужно. Только поставляйте движок SQL CE + сама база. SQL CE для этого и предназначен, чтобы хранить небольшие, локальные базы данных. А что за движок? Какой-то установщик? |
Сообщ.
#13
,
|
|
|
То что вы используете для работы с базой. dll'ка sqlce и все ее зависимости.
|
Сообщ.
#14
,
|
|
|
Цитата maxim84_ @ То что вы используете для работы с базой. dll'ка sqlce и все ее зависимости. А... Ясно. А что насчет SqlConnection? SQL Server необходим? |
Сообщ.
#15
,
|
|
|
Да. Для клиента достаточно иметь библиотеки для подключения к серверу. Если база должна быть у клиента, то соответственно и сам сервер должен быть установлен. Хотя, можно использовать и подключение к файлам mdf, может кто-то более подробно расскажет про этот метод, просто я его не использовал никогда
Проще говоря, SQL CE подходит для локальных баз данных и ни чего тяжелого за собой не таскает. |