Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Базы данных под .NET > Проблема со сложным SQl запросом в C#


Автор: Chef 11.12.2007, 10:17
Проблема такая:

Простые запросы работаю (SELECT <Поле> FROM <таблица>)

А вот сложные не хотят, в чем причина. Запрос делал в самом C#, он правильный работает.
Вот код.

Код

string sConnectString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\db.mdb";
            string sQueryString = @"SELECT Music.musicName, Disk.DiskName, [Group].GroupName"+
                                  @"FROM ((Disk INNER JOIN"+
                                  @"Music ON Disk.DiskID = Music.musicDisk) INNER JOIN"+
                                  @"[Group] ON Music.musicGroup = [Group].GroupID)";

            OleDbConnection dbConnection = new OleDbConnection(sConnectString);
            OleDbCommand dbCommand = new OleDbCommand(sQueryString, dbConnection);
            dbConnection.Open();
            OleDbDataReader dbReader = dbCommand.ExecuteReader(); //Тут выдает
                                                   // Ошибка синтаксиса (пропущен оператор) в выражении запроса 


Ваше мнение по данному вопросу 


Автор: Baa 11.12.2007, 11:50
Уже такой вопрос был smile всё дело, очередной раз, в невнимательности
Код

string sQueryString = @"SELECT Music.musicName, Disk.DiskName, [Group].GroupName" +
                                  @"FROM ((Disk INNER JOIN" +
                                  @"Music ON Disk.DiskID = Music.musicDisk) INNER JOIN" +
                                  @"[Group] ON Music.musicGroup = [Group].GroupID)";

            Console.WriteLine(sQueryString);

Угадай, что выведет этот код?
А выведет он след. хрень:
Код

SELECT Music.musicName, Disk.DiskName, [Group].GroupNameFROM ((Disk INNER JOINMu
sic ON Disk.DiskID = Music.musicDisk) INNER JOIN[Group] ON Music.musicGroup = [G
roup].GroupID)

Естественно этой конструкции SQL Server(или кто там у тебя через OleDb? ;-) ) удивится smile
Обрати внимание на отсутствие пробела перед FROM, да и во всех остальных местах, проще говоря, ты строки перенести забыл.

Автор: Chef 11.12.2007, 17:23
Baa  спасибо большое !!!
Ошибка принята и исправляеться  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)