При использовании функции проектирования запросов в Visual Studio любые запросы, которые я запускаю в базе данных SQL или базе данных Microsoft Access при тестировании, являются постоянными. Это означает, что они фактически изменяют данные в таблице (таблицах). Есть ли способ сделать запросы непостоянными при их тестировании до тех пор, пока программа не будет запущена? Использование C# в качестве языка программирования и .NET в качестве основы, если это имеет значение. Также необходимо знать процесс выполнения этого с помощью базы данных MS Access или SQL.Как запускать непостоянные запросы в Visual Studio
ответ
Вы можете делать транзакции на 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
Он использует IDE, но не пишет код. –
Должна быть обеспечена возможность для VS, чтобы создать вам локальную копию данных SQL вы работаете, пока вы повторное тестирование. Это сохраняется в папке bin. Посмотрите на это:
https://msdn.microsoft.com/en-us/library/ms246989.aspx
После того, как вы закончите тестирование можно просто изменить его указывать на базу данных вы хотите изменить с приложением.
Я не знаю способа, чтобы получить именно то, что вы просите, но я думаю, что есть способ получить близко к поведению вы хотите:
При использовании Microsoft SQL Server, создавая таблица с ведущим хешем в имени (#tableName) приведет к удалению таблицы после окончания сеанса.
Один из способов, которым вы могли бы воспользоваться этим, чтобы получить желаемое поведение, - это скопировать рабочую таблицу во временную таблицу и работать с временной таблицей вместо текущей таблицы.
Для этого использовать что-то вроде следующего:
SELECT * INTO #tempTable FROM liveTable
Это позволит создать полную копию liveTable, со всеми теми же столбцов и строк. Как только вы закончите, таблица будет автоматически удалена, и постоянные изменения не будут сделаны.
Это также может быть полезно для серии запросов, которые вы выполняете в одном и том же подмножестве большого набора данных. Выбор подмножества данных в меньшую временную таблицу может сделать последующие запросы намного быстрее, чем если бы вам пришлось выбирать из полного набора данных повторно.
Просто имейте в виду, что как только ваше соединение закроется, все данные будут переданы вместе с ним.
О каких вещах вы говорите? Конечно, критерий 'SELECT', конечно, не будет, и, конечно,« INSERT »или« UPDATE »изменят ваши данные. Похоже, вам нужна отдельная база данных тестирования. – Dai
Извините, я думал, что это подразумевалось. Да тип запросов, таких как Вставка и Обновление, которые изменяют данные. Я просто хочу посмотреть, как выглядит результат в представлении дизайна без фактического изменения данных. – Bmoe