Подключение к локальной базе данных VB.NET / извлечение данных - PullRequest
0 голосов
/ 23 марта 2012

Я просматривал кучу фрагментов кода и просто не понимаю, что там происходит.Некоторая помощь в понимании процесса подключения, чтения / манипуляции и закрытия была бы более чем признательна.

Я постоянно читаю все об этих DataAdapters, Ole и Sql и Sqlce, и я не знаю, что использовать или что-либо.

Я создал базу данных в VB.NET 2010, которая появилась как database.sdf, и я выбрал опцию Локальная база данных (полагаю, это актуально?).Затем я заполнил базу данных строкой данных с заголовками столбцов и первичным ключом.Таблица содержит много разных столбцов, но для целей тестирования важно следующее:

  • Имя БД: db_test
  • Имя таблицы: Расположение
  • Заголовок столбца первичного ключа: CITY
  • Другой столбец: BOUND_X
  • Информация в этих двух ячейках: CITY - «Brunswick» и BOUND_X - «5»
  • Существует только одна строка данных, поэтомуэто либо Row (0), либо Row (1), потому что я не знаю, что .NET использует для своего начального индекса.

Это то, что я собрал, но я совершенно уверенэто даже не в правильном направлении ...

Очевидно, что помощь по коду будет феноменальной, но если кто-то захочет разбить этот процесс и на английском, это было бы супер фантастически.

Dim conn As SqlConnection = New SqlConnection("Data Source=G:\Programming\VB.NET\TEST\TEST\db_test.sdf")

Dim ds As New db_test
Dim sql As New SqlCommand("SELECT * FROM Locations WHERE CITY='Brunswick'")

conn.Open()

(I have no idea what this is actually referring to, I am just trying to read data with these commands below that seemed to pop up a lot in forums...)
Dim sdr As SqlDataReader = sql.ExecuteReader
While sdr.Read = True
    MsgBox(sdr.Item("CITY") & " " & sdr.Item("BOUND_X"))
End While

sdr.Close()

conn.Close()

1 Ответ

1 голос
/ 23 марта 2012

Код доступа к данным в .NET сгруппирован в то, что ADO.NET.Вы можете прочитать для справки здесь:

http://msdn.microsoft.com/en-us/library/h43ks021(v=vs.100).aspx

Относительно кода:

  1. SqlConnection инициализирован.Соединение - это средство доступа к данным в источнике данных.Поскольку ваш источник - однофайловая база данных (возможно, SQL CE), он инициализируется путем к файлу.SqlConnection используется всеми другими классами для получения доступа к источнику данных.
  2. Команда инициализируется для получения необходимых данных.Это может быть вызов хранимой процедуры или запрос SQL.Он показывает способ получения данных - какие данные получать и как.
  3. Соединение с источником данных открыто.Канал для передачи данных открыт, сделаны необходимые манипуляции (открытие порта, рукопожатие, открытие файла и т. Д.)
  4. SqlDataReader - это один из механизмов для чтения данных на основе команды и соединения.Команда принимает соединение (следует установить sql.Connection = conn) и может быть выполнена тремя различными способами: ExecuteReader () - для возврата dataReader и извлечения строк в виде набора;ExecuteScalar () - для выполнения статистических SQL-запросов, таких как count / avg / ..., которые возвращают результат «одна строка - один столбец» (например, «5») - возвращает int;ExecuteNonQuery () - для выполнения запросов (таких как создание или удаление таблицы и т. Д.), Которые не возвращают никакого результата.
  5. Итак, dataReader похож на StreamReader для файлов, он просто возвращает вместо прочитанных строк - выбранные строки.Он указывает на текущий ряд всего набора.Порядок действий по умолчанию - перебирать dataReader с помощью Read () и сохранять каждый dataRow в List <> или что-то в этом роде.
  6. Соединение закрыто для использования свободных ресурсов.

Более технически правильный код выглядел бы так, как это можно найти здесь:

http://msdn.microsoft.com/en-us/library/dw70f090.aspx#Y533

...