powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / только начал осваивать
20 сообщений из 45, страница 2 из 2
только начал осваивать
    #34701895
AlexIT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
час58Да нет никаких паролей просьо все коды дома, а я на работе...
строкаПодключения = тип,провайдер,пароль,юзер, нет на память я не помню...:-(

ну тогда надо проверить: работает ли соединение само по себе с заданными параметрами. если работает, то с какой ошибкой вылетает. пишите из дома, если есть возможность - посмотрим.
...
Рейтинг: 0 / 0
только начал осваивать
    #34702592
Фотография час58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
код модуля
'Подключаем классы System,OLEDB
Imports System
Imports System.Data.OleDb
'Imports ADOX


Module AConnectionsModule

'Dim cat As New Catalog 'Imports ADOX
'Dim tbl As New Table 'Imports ADOX
Public AccessConnection As OleDbConnection 'Imports System.Data.OleDb


Public Function StringConnectToBDAccess(ByVal tProvider As String, ByVal tUserID As String, ByVal tPassword As String, ByVal tDataSource As String, ByVal tMode As String) As String
'Формируем строку соединения с Access
StringConnectToBDAccess = "Provider=" & tProvider & ";" & _
"User ID=" & tUserID & ";" & _
"Password=" & tPassword & ";" & _
"Data Source=" & tDataSource & ";" & _
"Mode=" & tMode & ";"
End Function
Public Function ConnectToBDAccess(ByVal MyConnectionString As String, ByRef StatusConnection As String) As Boolean
'Обработка исключения
Try
'Создадим
AccessConnection = New OleDbConnection(MyConnectionString)
'Открываем БД
AccessConnection.Open()
'Статус соединения
StatusConnection = "Connection State::" & AccessConnection.State.ToString
'Возврат положительного результата
ConnectToBDAccess = True

'Исключение OLEDB
Catch MyOdbcException As OleDbException
'Статус соединения (сообщение об ошибке)
StatusConnection = MyOdbcException.ToString
'Возврат отрицательного результата
ConnectToBDAccess = False

'Исключение по ошибок программы
Catch MyException As Exception
'Статус соединения (сообщение об ошибке)
StatusConnection = MyException.ToString
'Возврат отрицательного результата
ConnectToBDAccess = False

End Try
End Function
...
Рейтинг: 0 / 0
только начал осваивать
    #34702595
Фотография час58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кнопка на форме - создать строку соединения и передать её
Private Sub btnConnectionSTRingToAccess_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnConnectionSTRingToAccess.Click

'Формируем строку соединения и записывем её в txtboxConnectionString на форме
txtboxConnectionSTRing.Text = StringConnectToBDAccess(txtboxProviderToAccess.Text, txtboxUserToAccess.Text, txtboxPassToAccess.Text, txtboxPathToAccess.Text, txtboxAccessToAccess.Text)
End Sub
...
Рейтинг: 0 / 0
только начал осваивать
    #34702602
Фотография час58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кнопка на форме - проверить соединение

Private Sub btnTestToAccess_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnTestToAccess.Click

'Эта строка - статус подключения
Dim StatusConnection As String
'Соединимся и получим результат
If ConnectToBDAccess(txtboxConnectionSTRing.Text, StatusConnection) = True Then
'Соединение прошло удачно
MsgBox("Соединение прошло удачно. Тест выполнен. Строка состояния: " & StatusConnection)

Else
'Соединение не осущесвилось
MsgBox("Соединение не осущесвилось! Строка состояния: " & StatusConnection)
End If
Me.состояние.Text = StatusConnection
End Sub

всегда выдаёт 'Соединение прошло удачно'
...
Рейтинг: 0 / 0
только начал осваивать
    #34702609
Фотография час58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
теперь я пытаюсь как-то считать данные из таблицы базы - "dog2007"
Public Sub iz_ltablici()
Dim FRM As Form1
Dim dbreader As OleDbDataReader
Dim dbCmd As OleDbCommand ' = New OleDbCommand("SELECT NOMER FORM dog2007")
dbCmd.Connection = AccessConnection
' и вот тут у меня ошибка vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
dbreader = dbCmd.ExecuteNonQuery("SELECT NOMER FORM dog2007")
'^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
dbreader.Read()
FRM.TextBox1.Text = dbreader.GetString(0)
End Sub
...
Рейтинг: 0 / 0
только начал осваивать
    #34703777
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Любезнейший... F1, да, начните же Вы свои книжки читать... наконец...
ExecuteNonQueryExecutes an SQL statement against the Connection and returns the number of rows affected. Это интегер!
...
Рейтинг: 0 / 0
только начал осваивать
    #34704280
Фотография час58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
все примеры в книжке приведены для работы в консольном режиме.
А мне это трудно переложить на WINприложение...
...
Рейтинг: 0 / 0
только начал осваивать
    #34705221
AlexIT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
час58теперь я пытаюсь как-то считать данные из таблицы базы - "dog2007"
Public Sub iz_ltablici()
Dim FRM As Form1
Dim dbreader As OleDbDataReader
Dim dbCmd As OleDbCommand ' = New OleDbCommand("SELECT NOMER FORM dog2007")
dbCmd.Connection = AccessConnection
' и вот тут у меня ошибка vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
dbreader = dbCmd.ExecuteNonQuery("SELECT NOMER FORM dog2007")
'^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
dbreader.Read()
FRM.TextBox1.Text = dbreader.GetString(0)
End Sub

А зачем, простите, два раза запрос писать? зачем же вы тогда команду создавали?
...
Рейтинг: 0 / 0
только начал осваивать
    #34705698
Фотография час58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да? ....!
...
Рейтинг: 0 / 0
только начал осваивать
    #34705798
AlexIT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
час58Да? ....!

Это что? Мне? Думаете, ваши эмоции улучшат ситуацию? Если вам нужна помощь, будьте терпеливы, плз. Сложно быть телепатом, и понять - что же вам, в сущности, нужно.

Если код, который вы привели реальный, т.е. тот, который вы используете, то у вас несколько непонятностей:
1. Ошибка в ключевом слове "FROM" запросе "SELECT NOMER FORM dog2007";
2. В методе ExecuteNonQuery не нужно указывать текст сроки запроса, к тому же, с той же ошибкой, что и в п. 1;
3. Метод ExecuteNonQuery не применяется для выбора значений из таблицы, он только выполняет команду на сервере и возвращает количество обработанных записей. На это обратил внимание buser и написал вам тип значения, возвращаемого данным методом. И это никак не относится к разнице между консольными и Win приложениями. А для выбора значений необходимо применить метод ExecuteReader.
...
Рейтинг: 0 / 0
только начал осваивать
    #34705933
Фотография час58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я извиняюсь, видимо я не правильно выразился...
хотел сказать- вот ведь как, а я и не заметил ошибку - то..., но написал сокращённо...Дааа?
...
Рейтинг: 0 / 0
только начал осваивать
    #34705935
Фотография час58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выписал ещё книжку и снова незадача...
все примеры на языке C#, а я его в глаза не видел...
я всегда на vb да vba писал...
пока в конструкторе всё понятно , а как тока код, то не всегда бесик понимает меня...
вот к примеру проверяем вносились ли изменения в набор данных ds1
в учебнике написано на C#
If (Ds1.HasChanges())
DataTable dtDelChild = Ds1.Prep.GetChanges(DataRowState.Deleted)
dtDelChild- что это? Спрашивает бесик... , а я и сам не знаю что это.
DataTable - и это что это? Данные таблицы...
...
Рейтинг: 0 / 0
только начал осваивать
    #34705937
Фотография час58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
попробовал так
If Ds1.HasChanges() Then DataTable(dtDelChild = Ds1.Prep.GetChanges(DataRowState.Deleted))
DataTable(dtDelChild - не поняли друг друга...
...
Рейтинг: 0 / 0
только начал осваивать
    #34705983
AlexIT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну естественно, что у этих языков разный синтаксис, т.е. строка:
Код: plaintext
DataTable dtDelChild = Ds1.Prep.GetChanges(DataRowState.Deleted)
на VB должна быть написана немного иначе (могу в чём-то ошибиться, т.к. на VB не пишу):
Код: plaintext
Dim dtDelChild As DataTable = Ds1.Prep.GetChanges(DataRowState.Deleted)

На счёт литературы... Приобретите книгу С. Малик "ADO.NET 2.0 Для профессионалов", на форуме вы не получите столько информации, сколько находится в этой книге.
...
Рейтинг: 0 / 0
только начал осваивать
    #34706513
Фотография час58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
<<Для профессионалов>>???
Я читаю сейчас книгу для чайников...:-)
...
Рейтинг: 0 / 0
только начал осваивать
    #34706517
Фотография час58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что-же в C# переменные и объекты объявляются по ходу...
без ключевого слова (dim, let, set)???
...
Рейтинг: 0 / 0
только начал осваивать
    #34706770
AlexIT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
час58А что-же в C# переменные и объекты объявляются по ходу...
без ключевого слова (dim, let, set)???

Книга названа "... для профессионалов", но изучение ADO там ведётся с основ, но не основ программирования. а с основ работы с технологией ADO. Поэтому, если чувствуете в себе уверенность, то можете приобрести данную книгу, если нет, то сначала почитайте основы по VB.
На ваш вопрос отвечу, что объявление переменных в C# производится без использования ключевых слов, необходимо только перед именем переменной указать её тип, и, при необходимости, инициализировать её значение после знака равенства. Объявляются переменные в зависимости от контекста, где это необходимо.
...
Рейтинг: 0 / 0
только начал осваивать
    #34706779
Фотография hDrummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Модератор: Топик пока не закрываю, но он уже на грани.
...
Рейтинг: 0 / 0
только начал осваивать
    #34706861
Фотография час58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hDrummerМодератор: Топик пока не закрываю, но он уже на грани.
Хорошо...
Тема пррикрыта... ' Книгу С. Малик скачал ( PDF ).Спасибо за совет.
...
Рейтинг: 0 / 0
только начал осваивать
    #34708977
Фотография час58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извините, не удержался...
Вот что у меня вышло в финале...
в форме_№2


Private Sub dog_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim ds As DataSet
Dim Ad As OleDb.OleDbDataAdapter
ds = New DataSet
Me.DG_dog.DataSource = ds
Try
Comm = New OleDb.OleDbCommand("SELECT * FROM DOG2007", AccessConnection)
Comm.Connection = AccessConnection
Ad = New OleDb.OleDbDataAdapter
Ad.SelectCommand = Comm
Ad.Fill(ds, "DOG2007")
Me.DG_dog.DataMember = ds.Tables("DOG2007").TableName
AccessConnection.Close()
AccessConnection.Dispose()
Comm.Dispose()
ds.Dispose()
Catch ex As Exception
MsgBox("ошибочка - >" & ex.Message)

End Try
End Sub
...
Рейтинг: 0 / 0
20 сообщений из 45, страница 2 из 2
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / только начал осваивать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]