C#+Access XP+DataAdapter+SELECT TOP
От: Viacheslav_83  
Дата: 03.04.04 21:17
Оценка:
Господа, возникла проблема с SQL запросом в DataAdapter.
Нужно выбрать 7 строк с конца таблицы. Я пишу:
SELECT TOP 7 * FROM table ORDER BY Date DESC
или 
SELECT TOP 7 FROM table ORDER BY Date DESC
или
SELECT * FROM table ORDER BY Date DESC TOP 7
или
SET ROWCOUNT 7 
SELECT * FROM table ORDER BY Date DESC
SET ROWCOUNT 0

ничего не выходит... Ругается на ошибку. Выручайте!
Re: C#+Access XP+DataAdapter+SELECT TOP
От: Elena_ Россия  
Дата: 03.04.04 23:04
Оценка:
Здравствуйте, Viacheslav_83, Вы писали:

V_>Господа, возникла проблема с SQL запросом в DataAdapter.

V_>Нужно выбрать 7 строк с конца таблицы. Я пишу:
V_>
V_>SELECT TOP 7 * FROM table ORDER BY Date DESC
V_>или 
V_>SELECT TOP 7 FROM table ORDER BY Date DESC
V_>или
V_>SELECT * FROM table ORDER BY Date DESC TOP 7
V_>или
V_>SET ROWCOUNT 7 
V_>SELECT * FROM table ORDER BY Date DESC
V_>SET ROWCOUNT 0 
V_>

V_>ничего не выходит... Ругается на ошибку. Выручайте!

Поскольку table и Date — зарезервированные слова, попробуйте так:

SELECT TOP 7 * FROM [table] ORDER BY [Date] DESC
Пользователь — друг программиста!
Re[2]: C#+Access XP+DataAdapter+SELECT TOP
От: Viacheslav_83  
Дата: 04.04.04 07:28
Оценка:
Здравствуйте, Elena_,
на самом деле у меня таблица называется не table, а несколько сложнее, и Поле, по которому сортирую тоже не совсем Date... Это я для простоты написал
Re: C#+Access XP+DataAdapter+SELECT TOP
От: Admiral Украина  
Дата: 04.04.04 17:08
Оценка:
AFAIK, Access не поддерживает ROWCOUNT или TOP.
Posted via RSDN NNTP Server 1.8 beta
Re[2]: C#+Access XP+DataAdapter+SELECT TOP
От: Elena_ Россия  
Дата: 05.04.04 05:54
Оценка: 8 (1)
Здравствуйте, Admiral, Вы писали:

A>AFAIK, Access не поддерживает ROWCOUNT или TOP.


Вот этот код у меня нормально работает и выбирает Top 7, Access XP
    System.Data.OleDb.OleDbConnection cnn = new System.Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\test.MDB");

    System.Data.OleDb.OleDbCommand selectCMD = new System.Data.OleDb.OleDbCommand("SELECT TOP 7 * FROM [table] ORDER BY [Date] DESC", cnn);
    selectCMD.CommandTimeout = 30;

    System.Data.OleDb.OleDbDataAdapter myDA = new System.Data.OleDb.OleDbDataAdapter();
    myDA.SelectCommand = selectCMD;

    DataSet myDS = new DataSet();
    myDA.Fill(myDS, "myTable");

    foreach(DataTable myTable in myDS.Tables)
    {
        foreach(DataRow myRow in myTable.Rows)
        {
            foreach (DataColumn myColumn in myTable.Columns)
            {
                Console.WriteLine(myRow[myColumn]);
            }
        }
    }
Пользователь — друг программиста!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.