<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # ADO.NET 的數據集 > 原文: [http://zetcode.com/db/sqlitevb/dataset/](http://zetcode.com/db/sqlitevb/dataset/) ADO.NET 架構由兩個主要部分組成。 .NET 數據供應器和`DataSet`。 數據提供者是已明確設計用于數據處理和快速訪問數據的組件。 創建`DataSet`的目的是為了獨立于任何數據源進行數據訪問。 它可以與多個不同的數據源,XML 數據一起使用,或者用于管理應用本地的數據。 `DataSet`是數據庫表中數據的副本以及數據之間的關系。 它在內存中創建,并在需要對數據進行大量處理或將數據表綁定到 Winforms 控件時使用。 處理完成后,更改將被寫入數據源。 `DataSet`是斷開的關系結構。 這意味著在`DataSet`對象的整個生命周期中不必打開基礎連接。 這使我們能夠有效地使用可用的數據庫連接。 `DataSet`可以通過多種方式填充。 我們可以使用`SqliteDataAdapter`類的`Fill()`方法。 我們可以以編程方式創建`DataTable`,`DataColumn`和`DataRow`對象。 可以從 XML 文檔或流中讀取數據。 `SqliteDataAdapter`是`DataSet`和數據源之間的中介。 它填充`DataSet`并解析數據源的更新。 `DataTable`是內存中數據庫表的表示。 可以將一個或多個數據表添加到數據集。 對`DataSet`所做的更改由`SqliteCommandBuilder`類保存到數據源。 `DataGridView`控件提供了用于顯示數據的可自定義表。 它允許通過使用屬性來定制單元格,行,列和邊框。 我們可以使用此控件來顯示帶有或不帶有基礎數據源的數據。 ## 創建一個數據表 在第一個示例中,我們將使用`DataTable`類。 ```vb sqlite> CREATE TABLE Friends2(Id INTEGER PRIMARY KEY, Name TEXT); ``` 在這種情況下,必須先創建表,然后才能將任何數據保存到表中。 ```vb Option Strict On Imports Mono.Data.Sqlite Imports System.Data Module Example Sub Main() Dim cs As String = "URI=file:test.db" Using con As New SqliteConnection(cs) con.Open() Dim table As New DataTable("Friends2") Dim column As New DataColumn Dim row As DataRow column = New DataColumn() column.DataType = System.Type.GetType("System.Int32") column.ColumnName = "Id" table.Columns.Add(column) column = new DataColumn() column.DataType = Type.GetType("System.String") column.ColumnName = "Name" table.Columns.Add(column) row = table.NewRow() row("Id") = 1 row("Name") = "Jane" table.Rows.Add(row) row = table.NewRow() row("Id") = 2 row("Name") = "Lucy" table.Rows.Add(row) row = table.NewRow() row("Id") = 3 row("Name") = "Thomas" table.Rows.Add(row) Dim sql As String = "SELECT * FROM Friends2" Using da As New SqliteDataAdapter(sql, con) Using cb As New SqliteCommandBuilder(da) da.Fill(table) da.Update(table) End Using End Using con.Close() End Using End Sub End Module ``` 在示例中,我們創建一個新的`DataTable`對象。 我們在表中添加兩列和三行。 然后,我們將數據保存在新的`Friends2`數據庫表中。 ```vb Dim table As New DataTable("Friends2") ``` 創建一個新的`DataTable`對象。 ```vb column = New DataColumn() column.DataType = System.Type.GetType("System.Int32") column.ColumnName = "Id" table.Columns.Add(column) ``` 新列將添加到表中。 我們為列提供數據類型和名稱。 可通過`Columns`屬性訪問`DataTable`的列。 ```vb row = table.NewRow() row("Id") = 1 row("Name") = "Jane" table.Rows.Add(row) ``` 在表中添加一行。 可以通過`Rows`屬性訪問`DataTable`的行。 ```vb Dim sql As String = "SELECT * FROM Friends2" Using da As New SqliteDataAdapter(sql, con) ``` `SqliteDataAdapter`是數據庫表及其在內存中的表示之間的中介。 ```vb Using cb As New SqliteCommandBuilder(da) ``` `SqliteCommandBuilder`包裝數據適配器。 它只需要實例化。 我們稍后不會直接使用它。 ```vb da.Fill(table) da.Update(table) ``` 數據適配器中填充了表中的數據。 `Update`方法將數據插入數據庫。 ## 保存 XML 數據 來自`DataTable`的數據可以輕松保存在 XML 文件中。 此任務有一種`WriteXml()`方法。 ```vb Option Strict On Imports Mono.Data.Sqlite Imports System.Data Module Example Sub Main() Dim cs As String = "URI=file:test.db" Using con As New SqliteConnection(cs) con.Open() Dim stm As String = "SELECT * FROM Cars LIMIT 5" Using da As New SqliteDataAdapter(stm, con) Dim ds As New DataSet() da.Fill(ds, "Cars") Dim dt As DataTable = ds.Tables("Cars") dt.WriteXml("cars.xml") For Each row As DataRow In dt.Rows For Each col As DataColumn In dt.Columns Console.Write(row(col) & " ") Next Console.WriteLine() Next End Using con.Close() End Using End Sub End Module ``` 我們從`Cars`表中打印 5 輛汽車。 我們還將它們保存在 XML 文件中。 ```vb Using da As New SqliteDataAdapter(stm, con) ``` 創建一個`SqliteDataAdapter`對象。 它以 SQL 語句和連接為參數。 SQL 語句將由`SqliteDataAdapter`用于檢索和傳遞數據。 ```vb Dim ds As New DataSet() da.Fill(ds, "Cars") ``` 我們創建`DataSet`對象。 `Fill()`方法使用數據適配器從數據源檢索數據。 它創建一個名為`Cars`的新`DataTable`,并用檢索到的數據填充它。 ```vb Dim dt As DataTable = ds.Tables("Cars") ``` `Tables`屬性為我們提供了`DataSet`中包含的數據表的集合。 從該集合中檢索`Cars` `DataTable`。 ```vb dt.WriteXml("cars.xml") ``` 我們將數據表中的數據寫入 XML 文件。 ```vb For Each row As DataRow In dt.Rows For Each col As DataColumn In dt.Columns Console.Write(row(col) & " ") Next Console.WriteLine() Next ``` 我們將`Cars`表的內容顯示到終端。 為了遍歷數據,我們利用了`DataTable`對象的行和列。 ## 加載 XML 數據 我們已經展示了如何將數據保存在 XML 文件中。 現在我們將展示如何從 XML 文件加載數據。 ```vb Option Strict On Imports Mono.Data.Sqlite Imports System.Data Module Example Sub Main() Dim cs As String = "URI=file:test.db" Using con As New SqliteConnection(cs) con.Open() Dim ds As New DataSet() ds.ReadXml("cars.xml") Dim dt As DataTable = ds.Tables("Cars") For Each row As DataRow In dt.Rows For Each col As DataColumn In dt.Columns Console.Write(row(col) + " ") Next Console.WriteLine() Next con.Close() End Using End Sub End Module ``` 我們將`cars.xml`文件的內容讀入`DataSet`。 我們將所有行打印到終端。 ```vb Dim ds As New DataSet() ``` 創建一個`DataSet`對象。 ```vb ds.ReadXml("cars.xml") ``` 來自`cars.xml`的數據被讀入數據集。 ```vb Dim dt As DataTable = ds.Tables("Cars") ``` 將數據讀入數據集后,將創建一個新的`DataTable`。 我們得到這張表。 ```vb For Each row As DataRow In dt.Rows For Each col As DataColumn In dt.Columns Console.Write(row(col) + " ") Next Console.WriteLine() Next ``` 我們打印數據表的所有行。 ```vb $ mono loadxml.exe 1 Audi 52642 2 Mercedes 57127 3 Skoda 9000 4 Volvo 29000 5 Bentley 350000 ``` 運行示例。 ## `DataGridView` 在下一個示例中,我們將表綁定到 Winforms `DataGridView`控件。 ```vb Option Strict On Imports System.Windows.Forms Imports System.Drawing Imports System.Data Imports Mono.Data.Sqlite Public Class WinVBApp Inherits Form Private dgv As DataGridView Private da As SqliteDataAdapter Private ds As DataSet Public Sub New() Me.Text = "DataGridView" Me.Size = New Size(450, 350) Me.InitUI() Me.InitData() Me.CenterToScreen() End Sub Private Sub InitUI() dgv = New DataGridView() dgv.Location = New Point(8, 0) dgv.Size = New Size(350, 300) dgv.TabIndex = 0 dgv.Parent = Me End Sub Private Sub InitData() Dim cs As String = "URI=file:test.db" Dim con As New SqliteConnection(cs) Dim stm As String = "SELECT * FROM Cars" Using con As New SqliteConnection(cs) con.Open() ds = new DataSet() Using da As New SqliteDataAdapter(stm, con) da.Fill(ds, "Cars") dgv.DataSource = ds.Tables("Cars") End Using con.Close() End Using End Sub Public Shared Sub Main() Application.Run(New WinVBApp) End Sub End Class ``` 在本示例中,我們將`Cars`表綁定到 Winforms `DataGridView`控件。 ```vb Imports System.Windows.Forms Imports System.Drawing ``` 這兩個名稱空間用于 GUI。 ```vb Me.InitUI() Me.InitData() ``` 在`InitUI()`方法內部,我們構建了用戶界面。 在`InitData()`方法中,我們連接到數據庫,將數據檢索到`DataSe`中并將其綁定到`DataGrid`控件。 ```vb dgv = New DataGridView() ``` `DataGridView`控件已創建。 ```vb Dim stm As String = "SELECT * FROM Cars" ``` 我們將在`DataGridView`控件中顯示`Cars`表中的數據。 ```vb dgv.DataSource = ds.Tables("Cars") ``` 我們將`DataGridView`控件的`DataSource`屬性綁定到所選表。 ![DataGridView](https://img.kancloud.cn/17/1c/171cbc2d2d3b6f12e552c1cb40fabbaa_444x349.jpg) 圖:`DataGridView` 在 SQLite Visual Basic 教程的這一部分中,我們使用了`DataSet`,`DataTable`,`SqliteDataAdapter`,`SqliteCommandBuilder`和`DataGridView`類。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看