Запускайте SQL-запросы в DataTables или аналогичных в .Net без СУБД - PullRequest
3 голосов
/ 10 июня 2010

Я хотел бы иметь набор данных или таблицы данных и иметь возможность запускать на них операторы SQL без использования каких-либо внешних СУБД.

Например, чтобы взять 2 набора данных в наборе данных и просто соединить их напрямую с помощью оператора SQL и предложения Where, в результате получается новый объект данных?Например, если у меня есть 2 таблицы данных с именами Люди и Адреса в наборе данных (которые я создал с использованием кода, а не из базы данных ... простите за старомодный синтаксис соединения):

dim dtJoined as DataTable = MyDataSet.RunSQLQuery ("Select * from People, Orders Where People.PersonID=Orders.OrdereID")

Спасибо

Ответы [ 3 ]

3 голосов
/ 10 июня 2010

Это не sql, но если вы хотите запрашивать наборы данных и таблицы данных, лучше всего использовать LINQ to DataSet

2 голосов
/ 10 июня 2010

Вы не сможете запускать SQL против него, потому что это не СУБД, но вы, вероятно, можете получить то, что хотите достичь, используя стандартный LINQ.

1 голос
/ 07 января 2013

Вы можете записать его во временный CSV-файл и прочитать его, используя OLEDB

string strCSVConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
            + fileDirectory + ";Extended Properties='text;HDR=YES;'";

OleDbDataAdapter oleda = new OleDbDataAdapter(sql, strCSVConnString);
DataTable dataTable = new DataTable();
oleda.Fill(dataTable);

В этом случае sql может быть

SELECT * FROM fileName WHERE col = value

и т.Мы добились немалого успеха с этим.

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