SQLite Присоединить команду выдачи Unity - PullRequest
0 голосов
/ 04 декабря 2018

Я использую базу данных sqlite в своем проекте Unity, и мне нужно создать новую таблицу с помощью оператора Join, как это

string
        sql = "create table ResultTable2 as select name_journal from Journal INNER JOIN  Points.name_point ON Points.id_journal = Journal.id_journal";
        command = new SqliteCommand(sql, ActiveConnection);
        command.ExecuteNonQuery();

И у меня есть исключение: «не могу найти таблицу Points.name_point»

Так как я могу это сделать?Я узнал, что для этого вы можете использовать linq to sql, но я не уверен, работает ли он в Unity.В конечном итоге мне нужно преобразовать эту таблицу в XML-файл ..

Я пробовал это:

            var w = "select j.name_journal, p.name_point,w.name_workplace, w.percent_workplace from Journal j INNER JOIN Points p ON p.id_journal = j.id_journal INNER JOIN Workplace w ON w.id_point = p.id_point";

        var ds = new DataSet();
        using (var da = new SqliteDataAdapter(q, sqc))
        {
            da.Fill(ds);
        }
        ds.WriteXml(@"d:\data.xml");

, но XML-файл был пустым.возможно я не правильно сделал запрос .. Или это невозможно сделать в Unity и мне нужно использовать Xamarin?

1 Ответ

0 голосов
/ 04 декабря 2018

Вы не можете присоединиться к столбцу, только к таблице.Вы должны выбрать столбец из объединенной таблицы.Учитывая ваш второй запрос, я чувствую, что вы уже знали это, но только что сделали ошибку.Я бы также рекомендовал использовать объект StringBuilder для построения ваших запросов.

StringBuilder sqlBuilder = new StringBuilder();

sqlBuilder.AppendLine("CREATE TABLE ResultTable2 AS"); 
sqlBuilder.AppendLine("    SELECT Journal.name_journal, Points.name_point"); 
sqlBuilder.AppendLine("    FROM Journal"); 
sqlBuilder.AppendLine("    INNER JOIN Points ON Points.id_journal = Journal.id_journal");


command = new SqliteCommand(sqlBuilder.ToString(), ActiveConnection);
command.ExecuteNonQuery();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...