Подключение к БД

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

Чудик
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 639
Зарегистрирован: 06.07.2004 (Вт) 12:18
Откуда: г. Егорьевск

Подключение к БД

Сообщение Чудик » 02.01.2006 (Пн) 19:50

Пытаюсь прочитать данные из БД следующим путем
Код: Выделить всё
Imports System.Data.SqlClient
    Dim sConnectionString As String = "database=С:\RemBase.mdb"
        Dim objDataTable As New DataTable
        Dim objConnection As New SqlConnection(sConnectionString)

        Dim sSQL As String
        sSQL = "select * from Persons"

        Dim objCommand As New SqlCommand(sSQL, objConnection)
        objCommand.CommandType = CommandType.Text

        Dim objDataAdapter As New SqlDataAdapter(objCommand)
        Try
            objDataAdapter.Fill(objDataTable)

            DataGrid1.DataSource = objDataTable
        Catch MyExeption As Exception
            MsgBox(MyExeption.Message)
            End
        End Try

Объясните, что я не допонимаю?
Век живи - век учись!
www.detal-plast.narod.ru

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 02.01.2006 (Пн) 20:30

Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Чудик
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 639
Зарегистрирован: 06.07.2004 (Вт) 12:18
Откуда: г. Егорьевск

Сообщение Чудик » 03.01.2006 (Вт) 16:19

Изменил на
Код: Выделить всё
    Dim sConnectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0;DataSource=C:\RemBase.mdb;UserId=Andrey;Password=123;"

Выходит ошибка - Ключевое слово не поддерживается: 'provider'
Век живи - век учись!
www.detal-plast.narod.ru

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 03.01.2006 (Вт) 16:28

OleDBConnection
OleDBCommand
И всё остальное замени на OleDB.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Чудик
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 639
Зарегистрирован: 06.07.2004 (Вт) 12:18
Откуда: г. Егорьевск

Сообщение Чудик » 03.01.2006 (Вт) 17:12

Изменил
Код: Выделить всё
        Dim sConnectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0;DataSource=C:\RemBase.mdb;UserId=Andrey;"
        Dim objDataTable As New System.Data.DataTable
        Dim objConnection As New OleDb.OleDbConnection(sConnectionString)

        Dim sSQL As String
        sSQL = "select * from Persons"

        Dim objCommand As New OleDb.OleDbCommand(sSQL, objConnection)
        objCommand.CommandType = CommandType.Text

        Dim objDataAdapter As New OleDb.OleDbDataAdapter(objCommand)

        Try
            objDataAdapter.Fill(objDataTable)
            DataGrid1.DataSource = objDataTable

        Catch MyExeption As Exception
            MsgBox(MyExeption.Message)
            End
        End Try

Выдает - Невозможно найти устанавливаемый ISAM.
Похоже я полностью не догоняю.
Век живи - век учись!
www.detal-plast.narod.ru

Dmitriy Solomnikov
Постоялец
Постоялец
 
Сообщения: 407
Зарегистрирован: 10.11.2004 (Ср) 13:04
Откуда: Москва

Сообщение Dmitriy Solomnikov » 03.01.2006 (Вт) 17:26

Если база не запаролена - убери UserId из connection string

Чудик
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 639
Зарегистрирован: 06.07.2004 (Вт) 12:18
Откуда: г. Егорьевск

Сообщение Чудик » 03.01.2006 (Вт) 18:56

Та же ошибка!
Век живи - век учись!
www.detal-plast.narod.ru

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 03.01.2006 (Вт) 23:24

Data<пробел>Source
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

Чудик
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 639
Зарегистрирован: 06.07.2004 (Вт) 12:18
Откуда: г. Егорьевск

Сообщение Чудик » 04.01.2006 (Ср) 23:29

Пошло! Огромное спасибо!
Но появилась еще заковырка - на
Код: Выделить всё
    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        OleDb.OleDbDataAdapter.Update(objDataTable, "Persons")
    End Sub

Выходит ошибка: Reference to a non-shared member requires an object reference.
Не могу сам понять!
Век живи - век учись!
www.detal-plast.narod.ru

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 05.01.2006 (Чт) 2:09

OleDb.OleDbDataAdapter.Update(objDataTable, "Persons")

За это убивать надо ещё в детстве!
Вот это: OleDb.OleDbDataAdapter надо сначало создать, а потом ещё и грамотно уничтожить...
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

Чудик
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 639
Зарегистрирован: 06.07.2004 (Вт) 12:18
Откуда: г. Егорьевск

Сообщение Чудик » 07.01.2006 (Сб) 22:00

Код: Выделить всё
       Dim objConnection As New OleDb.OleDbConnection(sConnectionString)

        Dim objCommand As New OleDb.OleDbCommand(sSQL, objConnection)
        objCommand.CommandType = CommandType.Text

        Dim objDataAdapter As New OleDb.OleDbDataAdapter(objCommand)

        Dim xDataSet As DataSet
        xDataSet = objDataTable.GetChanges(DataRowState.Modified)

        objDataAdapter.Update(xDataSet, "Persons")

Ошибка: Для обновления требуется действительный UpdateCommand при передачи колекции DataRow с измененными строками.
Признаю, что я - чайник. Не объясните ли чайнику причину ошибки? Или киньте ссылку, где это разжевывается .....
Вложения
WindowsApplication10.zip
(39.34 Кб) Скачиваний: 68
Век живи - век учись!
www.detal-plast.narod.ru

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 08.01.2006 (Вс) 23:27

Анархия!

Объясни СЛОВАМИ что требуется?
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

Чудик
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 639
Зарегистрирован: 06.07.2004 (Вт) 12:18
Откуда: г. Егорьевск

Сообщение Чудик » 09.01.2006 (Пн) 8:42

Пытаюсь добиться следеющее:
1. считываем данные из бд в DataGrid
2. изменяем данные в DataGrid (в какой-то ячейке, допустим)
3. записываем измененные данные в бд.

Не получается третий пункт.
Считывание и запись данных осуществляется по событию Click.
Век живи - век учись!
www.detal-plast.narod.ru

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 10.01.2006 (Вт) 22:17

перед da.update надо сделать
db=new oleDb.OleDbCommandBuilder(da)
прибить его тоже потом не забудь..
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

Чудик
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 639
Зарегистрирован: 06.07.2004 (Вт) 12:18
Откуда: г. Егорьевск

Сообщение Чудик » 11.01.2006 (Ср) 22:23

Спасибо! Пошло, наконец-то!
Правда, так и недопонял, зачем здесь OleDbCommandBuilder? Уточните?
Век живи - век учись!
www.detal-plast.narod.ru

Dmitriy Solomnikov
Постоялец
Постоялец
 
Сообщения: 407
Зарегистрирован: 10.11.2004 (Ср) 13:04
Откуда: Москва

Сообщение Dmitriy Solomnikov » 12.01.2006 (Чт) 1:16

Чудик писал(а):Спасибо! Пошло, наконец-то!
Правда, так и недопонял, зачем здесь OleDbCommandBuilder? Уточните?


http://msdn.microsoft.com/library/rus/d ... stopic.asp

Чудик
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 639
Зарегистрирован: 06.07.2004 (Вт) 12:18
Откуда: г. Егорьевск

Сообщение Чудик » 12.01.2006 (Чт) 8:35

Благодарю!
Век живи - век учись!
www.detal-plast.narod.ru


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12

    TopList  
cron