2017-01-23 12 views
0

Я работаю над приложением и пытаюсь предложить возможность использовать «локальную» базу данных или базу данных SQL Server. То, что я пытаюсь решить, - это лучший формат локального БД для использования и как писать запросы.Приложение VB.NET с использованием SQL или локальной базы данных

В настоящий момент я играю с SQL Server CE и, похоже, работает нормально, но мне тогда нужно писать каждый блок кода дважды для любых запросов (один раз для SQL и один раз для SQL Server CE). Есть ли какие-либо решения для этого? Есть ли способ, которым я могу просто передать другую строку соединения?

То, что у меня есть на данный момент, является «sub», что у меня есть проверка, если вы используете локальный (my.setting.uselocal), а затем вызываете либо функцию Query_SQL, либо Query SQL. Я полагаю, что скоро укусит придется иметь два блока для каждого запроса к базе данных?

Любые предложения о том, как это сделать более эффективно?

Cheers

+0

Вы ищете святого Грааля каждого разработчика баз данных. Один код, чтобы управлять ими всеми. Я предлагаю посмотреть ORM (Object Relational Mapper). Некоторые из этих библиотек удивительны, как у SO ([Dapper] (https://github.com/StackExchange/dapper-dot-net)) – Steve

+0

Я так и думал. Достаточно просто скопировать/вставить код и просто изменить 4 элемента для работы. Но было бы здорово, если бы был более простой способ :) –

+0

Опять же, хотя и частичное решение состоит в том, чтобы разделить ваш код на логические слои. Модель, описывающая ваши данные, бизнес-логику, которая действует над этими данными, слой пользовательского интерфейса, который представляет ваши данные и уровень базы данных, который взаимодействует с базой данных. Эта последняя часть может обрабатываться ORM, например Dapper, и изолировать ваш код от неприятных деталей различий базы данных. Найдите несколько примеров с dapper, и вы поймете его силу. – Steve

ответ

0

Вы можете попробовать создать файл .sdf. Они могут быть созданы программно, вместе с файлом базы данных/таблицами и т. Д. В файле.

Прошло много времени с тех пор, как я использовал их, но IIRC вы можете писать чтение/запись с тем же синтаксисом tsql. Я бы подумал, что это позволит вам выполнять одни и те же функции запроса, а затем вы можете перейти в любое соединение.

+0

То, с чем я работал на этом этапе, но при использовании в VB.NET необходимо иметь differetn declerations для соединения/команды на основе SQL или SQLCE. –