2015-05-04 3 views
2

При использовании функции проектирования запросов в Visual Studio любые запросы, которые я запускаю в базе данных SQL или базе данных Microsoft Access при тестировании, являются постоянными. Это означает, что они фактически изменяют данные в таблице (таблицах). Есть ли способ сделать запросы непостоянными при их тестировании до тех пор, пока программа не будет запущена? Использование C# в качестве языка программирования и .NET в качестве основы, если это имеет значение. Также необходимо знать процесс выполнения этого с помощью базы данных MS Access или SQL.Как запускать непостоянные запросы в Visual Studio

+1

О каких вещах вы говорите? Конечно, критерий 'SELECT', конечно, не будет, и, конечно,« INSERT »или« UPDATE »изменят ваши данные. Похоже, вам нужна отдельная база данных тестирования. – Dai

+0

Извините, я думал, что это подразумевалось. Да тип запросов, таких как Вставка и Обновление, которые изменяют данные. Я просто хочу посмотреть, как выглядит результат в представлении дизайна без фактического изменения данных. – Bmoe

ответ

0

Вы можете делать транзакции на C#, похожие на то, как вы используете их в SQL. Вот пример:

connection.Open(); 

SqlCommand command = connection.CreateCommand(); 
SqlTransaction transaction; 

// Start a local transaction. 
transaction = connection.BeginTransaction("SampleTransaction"); 

//Execute query here 
Query details 

//check if test environment 
bool testEnvironment = SomeConfigFile.property("testEnvironment"); 
if (!testEnvironment) { 
    transaction.Commit(); 
} else { 
    transaction.Rollback(); 
} 

Здесь представлена ​​документация по сделкам в C#: https://msdn.microsoft.com/en-us/library/86773566%28v=vs.110%29.aspx

+0

Он использует IDE, но не пишет код. –

0

Должна быть обеспечена возможность для VS, чтобы создать вам локальную копию данных SQL вы работаете, пока вы повторное тестирование. Это сохраняется в папке bin. Посмотрите на это:

https://msdn.microsoft.com/en-us/library/ms246989.aspx

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

0

Я не знаю способа, чтобы получить именно то, что вы просите, но я думаю, что есть способ получить близко к поведению вы хотите:

При использовании Microsoft SQL Server, создавая таблица с ведущим хешем в имени (#tableName) приведет к удалению таблицы после окончания сеанса.

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

Для этого использовать что-то вроде следующего:

SELECT * INTO #tempTable FROM liveTable 

Это позволит создать полную копию liveTable, со всеми теми же столбцов и строк. Как только вы закончите, таблица будет автоматически удалена, и постоянные изменения не будут сделаны.

Это также может быть полезно для серии запросов, которые вы выполняете в одном и том же подмножестве большого набора данных. Выбор подмножества данных в меньшую временную таблицу может сделать последующие запросы намного быстрее, чем если бы вам пришлось выбирать из полного набора данных повторно.

Просто имейте в виду, что как только ваше соединение закроется, все данные будут переданы вместе с ним.