На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Страницы: (2) [1] 2  все  ( Перейти к последнему сообщению )  
> Работа с локальной базой данных в Visual Studio 2012
    В обозревателе серверов есть файл базы данных 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".
      Использйте для этих случаев SqlCeConnection, SqlCeCommand и т.д. Это классы которые специально сделаны для роботы с SQL Server CE.
        Цитата Craft @
        Использйте для этих случаев SqlCeConnection, SqlCeCommand и т.д. Это классы которые специально сделаны для роботы с SQL Server CE.

        Спасибо.
        Не могу понять в чем ошибка:
        ExpandedWrap disabled
          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();

        Ошибка такая:
        ExpandedWrap disabled
          Необработанное исключение типа "System.Data.SqlServerCe.SqlCeException" в System.Data.SqlServerCe.dll
        Сообщение отредактировано: cyt -
          Не используйте служебные слова (Table) как имена об'ектов.
            их просто надо экранировать скобками вида
            "SELECT [Firstname] FROM [Table] WHERE [Lastname] = 'Jones'"
              Цитата nvn @
              их просто надо экранировать скобками вида
              "SELECT [Firstname] FROM [Table] WHERE [Lastname] = 'Jones'"

              Спасибо, помогло.
              Теперь у меня такой вопрос. Требует ли база *.mdf больше служб, чем *.sdf?
              То есть, если я буду делать установщик и распространять его, что выгоднее: использовать базу, основанную на службах (*.mdf) или локальную базу (*.sdf)?
              База состоит из 2-х таблиц! Кроме SELECT ничего не требуется.
              Сообщение отредактировано: cyt -
                Попробуйте так:
                ExpandedWrap disabled
                  command_ce = new SqlCeCommand("SELECT Firstname FROM Table WHERE Lastname = 'Jones'", sqlCeConnection1);



                Цитата
                System.Data.SqlServerCe.SqlCeException

                Какое сообщение в исключении?

                Приложение однопоточное? sqlCeConnection1 создается в том-же потоке что и SqlCeCommand?
                  Цитата maxim84_ @
                  Попробуйте так:
                  ExpandedWrap disabled
                    command_ce = new SqlCeCommand("SELECT Firstname FROM Table WHERE Lastname = 'Jones'", sqlCeConnection1);



                  Цитата
                  System.Data.SqlServerCe.SqlCeException

                  Какое сообщение в исключении?

                  Приложение однопоточное? sqlCeConnection1 создается в том-же потоке что и SqlCeCommand?

                  Спасибо за желание помочь, но вы тему не читали.
                    Скрытый текст
                    Ядрен батон... :wacko: чудеса FF продолжаются!

                    Сорри, когда читал не видел 7-го и 5-го сообщения...

                    Цитата
                    То есть, если я буду делать установщик и распространять его, что выгоднее: использовать базу, основанную на службах (*.mdf) или локальную базу (*.sdf)?


                    sdf - роднее для SQL Ce.
                    mdf - это файл базы для SQL Express и выше, а значит в ней может быть много того, чего не может обработать SQL Ce. Следовательно, лучше sdf, ИМХО.
                      Цитата maxim84_ @
                      Скрытый текст
                      Ядрен батон... :wacko: чудеса FF продолжаются!

                      Сорри, когда читал не видел 7-го и 5-го сообщения...

                      Цитата
                      То есть, если я буду делать установщик и распространять его, что выгоднее: использовать базу, основанную на службах (*.mdf) или локальную базу (*.sdf)?


                      sdf - роднее для SQL Ce.
                      mdf - это файл базы для SQL Express и выше, а значит в ней может быть много того, чего не может обработать SQL Ce. Следовательно, лучше sdf, ИМХО.

                      Т.е для пользователя выгоднее SQL CE, т.к. меньше служб сторонних устанавливать...
                        Цитата
                        Т.е для пользователя выгоднее SQL CE, т.к. меньше служб сторонних устанавливать...

                        Вообще ничего устанавливать не нужно. Только поставляйте движок SQL CE + сама база. SQL CE для этого и предназначен, чтобы хранить небольшие, локальные базы данных.
                          Цитата maxim84_ @
                          Цитата
                          Т.е для пользователя выгоднее SQL CE, т.к. меньше служб сторонних устанавливать...

                          Вообще ничего устанавливать не нужно. Только поставляйте движок SQL CE + сама база. SQL CE для этого и предназначен, чтобы хранить небольшие, локальные базы данных.

                          А что за движок? Какой-то установщик?
                            То что вы используете для работы с базой. dll'ка sqlce и все ее зависимости.
                              Цитата maxim84_ @
                              То что вы используете для работы с базой. dll'ка sqlce и все ее зависимости.

                              А... Ясно.
                              А что насчет SqlConnection? SQL Server необходим?
                                Да. Для клиента достаточно иметь библиотеки для подключения к серверу. Если база должна быть у клиента, то соответственно и сам сервер должен быть установлен. Хотя, можно использовать и подключение к файлам mdf, может кто-то более подробно расскажет про этот метод, просто я его не использовал никогда :)
                                Проще говоря, SQL CE подходит для локальных баз данных и ни чего тяжелого за собой не таскает.
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0764 ]   [ 16 queries used ]   [ Generated: 1.05.24, 01:27 GMT ]