Как выполнять непостоянные запросы в Visual Studio

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

3 ответа

Вы можете делать транзакции в 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

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

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

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

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

SELECT * INTO #tempTable FROM liveTable

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

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

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

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

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

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

Другие вопросы по тегам