В качестве контекста, я новичок в ADO.NET и использую «Программирование ADO.NET 2.0» Дэвида Сцеппы, чтобы помочь мне накопить знания.
Я пытался понять объект Набор данных , но думаю, что, возможно, я полностью неправильно понял точку и ищу руководство.
В качестве примера, я построил действительно простую форму с комбинированным списком с целью заполнения комбинированного списка именами людей в базе данных («MyDatabase»). Следующий код прекрасно работает для меня:
Private Sub frmEmployee_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim strConn, strSQL As String
strConn = "Data Source=.\SQLExpress;Initial Catalog=MyDatabase;Integrated Security=True;"
strSQL = "SELECT LastName, FirstName FROM EmployeeTable"
Dim da As New SqlDataAdapter(strSQL, strConn)
Dim ds As New DataSet()
da.Fill(ds, "AllEmployeesList")
For i As Integer = 0 To ds.Tables("AllEmployeesList").Rows.Count - 1
Dim row As DataRow = ds.Tables("AllEmployeesList").Rows(i)
cbAllEmployeesList.Items.Add(row("LastName") & ", " & row("FirstName"))
Next
End Sub
Теперь предположим, что в моей форме есть кнопка ('GetAge'), предназначенная для получения возраста сотрудника, выбранного в выпадающем списке из набора данных "AllEmployeesList", и отображения в текстовом поле в той же форме.
Я действительно не понимаю, как я могу взаимодействовать с исходным набором данных, который я создал, чтобы получить возраст? Мне кажется, что набор данных находится только в памяти во время события Load? Если мой набор данных сохраняется после события Load, то где я могу его найти?
Насколько я понимаю, объект набор данных является автономным кэшем данных и не имеет ссылок на базовую базу данных. Это полезно, поскольку позволяет манипулировать данными, не оставляя соединение открытым, а затем Вы можете отправить любые изменения в Dataset обратно в исходную базу данных. Итак, как только я собрал свой набор данных в событии Load, как я могу дальше взаимодействовать с ним?
Я подозреваю, что в моем понимании, что такое Dataset , есть большая ошибка. Кто-нибудь может меня поправить?
Спасибо всем, кто может помочь
Alex