Форум программистов, компьютерный форум, киберфорум
Наши страницы

Visual Basic .NET

Войти
Регистрация
Восстановить пароль
 
Stix59ru
58 / 1 / 1
Регистрация: 12.01.2015
Сообщений: 10
#1

Получение данных из Access - Visual Basic .NET

22.12.2016, 19:25. Просмотров 258. Ответов 2
Метки нет (Все метки)

Доброго времени суток ) Осваиваю программирование путём копирования кусков кода с этого сайта. Пытаюсь написать программу которая скачивает файлы с удаленного веб сервера на Яндекс диск. Локальные данные храню в базе данных Access (чтоб отслеживать, чего сколько закачалось). Функция которая возвращает данные из Access.
vb.net
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Public Function CreateReader(ByVal queryString As String)
        Dim resVo As String = ""
        Using Con As New OleDb.OleDbConnection
            Con.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & PeremDlyaPodkluzh
            MsgBox("запрос " & queryString)
            Dim command As New OleDbCommand(queryString, Con)
            Con.Open()
            Dim DataReader As OleDbDataReader = command.ExecuteReader(CommandBehavior.CloseConnection)
            While DataReader.Read()
                 resVo = DataReader(0).ToString()
            End While
            DataReader.Close()
            Con.Close()
        End Using
        MsgBox("Возврат: " & resVo)
        Return resVo
 
    End Function
queryString=
T-SQL
1
SELECT [ссылка] FROM [Ssilka] where [код] =1
PeremDlyaPodkluzh=путь к базе данных. Срабатывает почему то только 2 раза т.е. отвечает на 1 запрос, 2 запрос а на 3 возвращает пустую строку. В базе данных данные все существуют. Не подскажете где копать и или почему так получается. Заранее спасибо.

Добавлено через 1 час 52 минуты
написал по другому
vb.net
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Public Function ZhtnAccess(ByVal queryString As String)
        MsgBox("queryString- " & queryString)
        Dim DS As New DataSet
        Dim Con As New OleDb.OleDbConnection
        Con.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & PeremDlyaPodkluzh
        If Con.State = ConnectionState.Closed Then Con.Open()
        Dim DA = New OleDb.OleDbDataAdapter(queryString, Con)
        Dim CB = New OleDb.OleDbCommandBuilder(DA)
        DA.Fill(DS, "Ssilka")
        DataGridView1.DataSource = DS.Tables("Ssilka")
        Dim table As DataTable
        Dim row As DataRow
        Dim column As DataColumn
        ' For each table in the DataSet, print the row values.
        For Each table In DS.Tables
            For Each row In table.Rows
                For Each column In table.Columns
                    Console.WriteLine(row(column))
                    MsgBox("row(column)- " & row(column))
                    Return row(column)
                Next column
            Next row
        Next table
 
    End Function
те же грабли

Добавлено через 33 минуты
укоротил
vb.net
1
2
3
4
5
6
7
8
9
10
11
12
Public Function ZhtnAccess(ByVal queryString As String)
        MsgBox("queryString- " & queryString)
        Dim DS As New DataSet
        Dim Con As New OleDb.OleDbConnection
        Con.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & PeremDlyaPodkluzh
        If Con.State = ConnectionState.Closed Then Con.Open()
        Dim DA = New OleDb.OleDbDataAdapter(queryString, Con)
        DA.Fill(DS, "Ssilka")
        'DataGridView1.DataSource = DS.Tables("Ssilka")
        MsgBox(DS.Tables("Ssilka").Rows(0)(0))
        Return DS.Tables("Ssilka").Rows(0)(0)
            End Function
Добавлено через 17 часов 28 минут
vb.net
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Public Function ZhtnAccess(ByVal queryString As String)
        MsgBox("queryString- " & queryString)
        Dim Result As String = "Пусто, нет ответа"
        Using Con As New OleDb.OleDbConnection
            Con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & PeremDlyaPodkluzh
            Dim cmd As New OleDbCommand(queryString, Con)
            Try
                If Con.State = ConnectionState.Closed Then Con.Open()
                Result = cmd.ExecuteScalar
                If Con.State = ConnectionState.Open Then Con.Close()
                MsgBox("Return Result= " & Result)
                Return Result
            Catch ex As Exception
                Console.WriteLine(ex.Message)
            End Try
        End Using
        Return Result
    End Function
третий вариант получения одиночного значения из базы

Добавлено через 1 час 37 минут
4 вариант обращение к функции "SELECT [ссылка] FROM [Ssilka] where [код] =?", PutKod
vb.net
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Public Function ZhtnAccess(ByVal queryString As String, ByVal Param1 As Long)
        MsgBox("queryString- " & queryString)
        Dim Result As String = "Пусто, нет ответа"
        Using Con As New OleDb.OleDbConnection
            Con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & PeremDlyaPodkluzh
            Dim cmd As New OleDbCommand(queryString, Con)
            cmd.Parameters.Add("@par1", OleDbType.BigInt).Value = Param1
            Try
                If Con.State = ConnectionState.Closed Then Con.Open()
                Result = cmd.ExecuteScalar
                If Con.State = ConnectionState.Open Then Con.Close()
                MsgBox("Return Result= " & Result)
                Return Result
            Catch ex As Exception
                Console.WriteLine(ex.Message)
            End Try
        End Using
        Return Result
    End Function
но результат пусто ((
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.12.2016, 19:25
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Получение данных из Access (Visual Basic .NET):

.NET 4.x Получение списка (имён) таблиц MS Access - Visual Basic .NET
Здравствуйте, уважаемые форумчане! Имеется БД Access, в которой программно создаются таблицы: Imports ADOX Imports System.Data.OleDb ...

какой формат базы данных DSN Access (атрибуты и типы данных) ? - .NET
В настройках IIS можно выбирать формат журнала, один из форматов - это DSN Access, то есть события журналируются в базу данных. Так вот,...

Вывод данных из базы данных access в TextBox - Visual Basic .NET
На форме допустим 10 текстбоксов, в них надо вывести данные из записи таблицы базы данных, допустим со столбцами Kol_0 , Kol_1 , Kol_2...

Дабавление данных из файла в базу данных Access - Visual Basic .NET
Здравствуйте! При передаче данных из файла tpo1.txt в базу данных sst.mdb данные добавляются в поля Lon, Lat, SST без десятичной части,...

Получение данных из MS SQL - Visual Basic .NET
Друзья, подскажите, пожалуйста вот такой вопросс: Есть ряд процедур для получения данных. В частности две из них. Код ниже. А суть...

Получение данных из таблицы в браузере - Visual Basic .NET
Подскажите, можно ли воплотить мою задумку? В форме в контроле "браузер" есть таблица. Мне нужно выбирать по названию строк данные из...

2
XIST
806 / 643 / 91
Регистрация: 01.10.2009
Сообщений: 2,040
Записей в блоге: 1
22.12.2016, 20:13 #2
Stix59ru,
vb.net
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Public Function ZhtnAccess(ByVal queryString As String, ByVal Param1 As Long)
        MsgBox("queryString- " & queryString)
        Dim Result As String = "Пусто, нет ответа"
        Using Con As New OleDb.OleDbConnection
            Con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & PeremDlyaPodkluzh
            Dim cmd As New OleDbCommand(queryString, Con)
            cmd.Parameters.AddWithValue("@par1", Param1).DbType = DbType.Int64
            Try
                If Con.State = ConnectionState.Closed Then Con.Open()
                Result = cmd.ExecuteReader
                If Con.State = ConnectionState.Open Then Con.Close()
                MsgBox("Return Result= " & Result)
                Return Result
            Catch ex As Exception
                Console.WriteLine(ex.Message)
            End Try
        End Using
        Return Result
    End Function
В случаи если queryString возвращает что-либо
И у вас param1 long в передачи, а параметру присваеваете Bigint
2
Stix59ru
58 / 1 / 1
Регистрация: 12.01.2015
Сообщений: 10
22.12.2016, 20:36  [ТС] #3
Спасибо огромное, странно но всё само заработало со старым кодом даже при несоответствии типов, сейчас даже не знаю править мой код или это не критично и так сойдет. Программа уже скачала несколько клипов )). Вообще она уже скачала 250 гигабайт эротики, но тут я начал её усовершенствовать так как раньше подключение к базе Access было организовано с помощью визуальных мастеров и при переносе на другую машину не работало. Сейчас вроде качает... Если кому надо могу скинуть исходники и базу в которой ссылки на страницы сайта.

Добавлено через 2 минуты
Пошел читать про типы данных в OleDb, студии и Accesse ))
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.12.2016, 20:36
Привет! Вот еще темы с ответами:

Получение и передача данных по FTP - Visual Basic .NET
Привет всем! Подскажите, пожалуйста, кто сталкивался, каким образом средствами VB.NET получать и отправлять данные по FTP? ...

.NET 4.x Получение данных страницы с JavaScript - Visual Basic .NET
Всем привет. Подскажите. Пытаюсь получить содержимое страницы. Для этого создал модуль LoadHTML: Imports System.Net Imports...

Получение данных с php страницы - Visual Basic .NET
Как получить данные с php страницы которая открыта на браузере.

Получение данных из ячеек DataGridview - Visual Basic .NET
В общем у меня в Datagridview заргужается база, имеет 6 столбцов 52 строки. Первые 2 столбца заполнены и их трогать не нада, оставшиеся 4...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru