Получить одно значение из БД .accdb

Hoxnap

есть бд аксес. есть таблица. в ней ячейка. в ячейке яйцо. в яйце значение как вытащить это значение? можно сделать следующее
       
Dim Con As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & _ 
My.Application.Info.DirectoryPath & "\БД.mdb")
Dim SqlCom As OleDb.OleDbCommand
Dim ds As New DataSet
Dim da As New OleDb.OleDbDataAdapter
SqlCom = New OleDb.OleDbCommand("SELECT * FROM [Таблица1] ORDERED BY Код DESC", Con)
Con.Open()
SqlCom.ExecuteNonQuery()
da.Fill(ds, "Табл")
Grid1.DataSource = ds
Grid1.DataMember = "Табл"
и вытащить из датагрид, после чего выполнить ещё один запрос получить данные (который был до указанного в коде), и ещё раз присвоить результат в датагрид. но мне кажется это криво и в датагриде будет "что-то прыгать". поискал при отладке в DA смог найти список таблиц, зашёл в Табл, нашёл коллекцию columns, но при попытке получить колекцию item показывает ошибку мол "невозможно отобразить т.к. не ... (дальше прочитать не даёт о.О) что делать вобщем?
4 ответа

Hoxnap

        Dim Con As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" &
        My.Application.Info.DirectoryPath & "\БД.mdb")
        Dim SqlCom As OleDb.OleDbCommand
        SqlCom = New OleDb.OleDbCommand("SELECT ИмяПоля FROM [Таблица1] WHERE Код = КодЗаписи", Con)
        Con.Open()
        Dim result = SqlCom.ExecuteScalar()


Hoxnap

спасибо. в принципе правильно, хотя это первый столбец первой строки. (да, я вижу что в sql только один столбец запрашивается). если из одной строки нужно вытаскивать несколько значений, то придется часто обращаться к серверу. нашёл ещё вот это Получить значение конкретной ячейки из БД попробую оба, отпишу потом


Hoxnap

Hoxnap, вы спрашивали как получить значение в "ячейке". Я и ответил. ExecuteScalar, грубо говоря, как раз этим и занимается - берёт из результата запроса к СУБД значение первого столбца первой строки. Если нужна целиком строка(строки), то используйте ExecuteQuery.


Hoxnap

столбец из значений 1, 2, 3, 4, 5, 6 то есть чтобы вытащить второе, третье и пятое значение нужно отправлять три запроса (что даёт нагрузку). легче же загрузить весь столбец и вытащить из него значения в программе. хотя этим методом у меня пока не получилось (мало времени было, SQL капризничает), имхо тот способ боле увенирсален