BEBE2011 Ответов: 1

Использовать две базы данных с одного сервера?


Привет,

У меня есть две базы данных SQl Server(Customer, Quotes) на одном сервере. Я создаю winform, который имеет несколько текстовых полей, comboboxes, checkboxes, которые используются для ввода данных в базу данных quote, а также одно текстовое поле, которое используется для поиска имени клиента в базе данных Customer(Id). Как только я найду конкретного клиента, я хотел бы добавить вновь созданные котировки(CustomerId) против этого клиента.

Мой вопрос: как я мог бы сочетать их вместе, используя sql или entity framework?

Редактирование 1:
Пример того, что я пытаюсь сделать.
Введите Данные Котировки:
Продукт: Обувь
Количество : 20
Поиск клиентов, дБ ........ Джо Блоггс ИД 123
Найденный Клиент ;
Вставьте идентификатор клиента и информацию о котировке в таблицу котировок в отдельной БД.

Что я уже пробовал:

Я могу запросить базу данных клиентов для поиска клиента.И отдельно я могу вставлять данные в кавычки БД.

Tomas Takac

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

BEBE2011

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

Kuthuparakkal

Нам может понадобиться священник базы данных, чтобы провести этот брак....

G3Coder

Может быть, если бы вы объяснили, что вы подразумеваете под словом "жениться"?
Не будет простой ссылочной целостности между двумя отдельными базами данных, и если вы хотите такую единую базу данных, это путь вперед. Если нет-просто вставьте данные во вторую базу данных.

BEBE2011

Извините, я вижу, что знаю, что я сделал, "жениться" было неправильным словом.Как я могу запросить одну БД и вставить в другую БД, передавая при этом идентификатор запрашиваемой БД.

Jim_Snyder

Для второй базы данных вам нужен полный путь.

1 Ответов

Рейтинг:
2

xszaboj

Это легко, просто создайте две строки соединения.

пример:

public int GetId(){
using (SqlConnection con = new SqlConnection("CONNECTION STRING TO CUSTOMER DB")
 {
 //logic to get id
 }
}
public void Save(int customerId, object Quote){
using (SqlConnection con = new SqlConnection("CONNECTION STRING TO QUOTE DB")
 {
 //logic to save quote with customer id
 }
}


Если вам нужно сделать это в транзакции, я рекомендую вам прочитать несколько статей об этом.
Учебник для начинающих для понимания транзакций и TransactionScope в ADO.NET[^]

Вас интересуют распределенные транзакции.