Мне нужно управлять множеством таблиц из разных баз данных в моем проекте, как непосредственно из него, так и автоматически создаваемых и отображаемых в пользовательском интерфейсе (например, в DGV) для чтения, фильтрации и печати. В предыдущем вопросе он предложил мне использовать DataSets и LINQ, поэтому я искал и следовал примерам для добавления кода DataSet:
private void button1_Click(object sender, EventArgs e)
{
openConnections(); // open connections for SqlCommands I'm using in this piece of code
DataSet ds = new DataSet();
SqlCommand command;
command = new SqlCommand("SELECT * FROM [database1].[dbo].[articles]", connectionSQLDatabase1);
SqlDataAdapter adapter = new SqlDataAdapter();
adapter.SelectCommand = command;
adapter.Fill(ds, "articles"); //articles becomes the Tables[0] in the ds DataSet
SqlCommand command2;
command2 = new SqlCommand("SELECT * FROM [database2].[dbo].[articles_Details]", connectionSQLDatabase2);
SqlDataAdapter adapter2 = new SqlDataAdapter();
adapter2.SelectCommand = command2;
adapter2.Fill(ds, "articles_Details"); //articles becomes the Tables[1] in the ds DataSet
// LINQ code to query ds DataSet (.....)
}
Теперь на этом этапе кода мне нужно запросить мой DS DataSet, я видел, что могу сделать это с помощью LINQ, но почти все примеры LINQ, которые я видел, структурированы таким образом, что я не думаю, что они соответствуют моему коду.
Я ожидал написать код LINQ, например (пример из Интернета):
var query = from person in people
join pet in pets on person equals pet.Owner
select new { OwnerName = person.FirstName, PetName = pet.Name };
, но я не могу написать имена таблиц таким образом, не получив ошибку:
таблица не существует в текущий контекст.
Я хотел бы знать, что я делаю неправильно, в глобальном проекте, который я должен сделать, мне нужно добавить различные таблицы из разных баз данных в мой набор данных, а затем выполнить INNER , LEFT и RIGTH JOINS и многие другие манипуляции с данными, было бы очень полезно иметь прямой контроль над таблицами в коде, как это, похоже, дает этот последний пример. Добавляя этот DataSet в мой проект, я правильно последовал примеру, это правильно, потому что при отладке содержимого моего ds я получаю все содержимое своих таблиц.
Надеюсь, кто-то может помочь.