<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>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # 使用`SqliteDataReader`檢索數據 > 原文: [http://zetcode.com/db/sqlitecsharp/read/](http://zetcode.com/db/sqlitecsharp/read/) `SqliteDataReader`是用于從數據庫檢索數據的類。 它與`SqliteCommand`類一起使用以執行 SQL `SELECT`語句,然后訪問返回的行。 它提供對查詢結果的快速,僅轉發和只讀訪問。 這是從表中檢索數據的最有效方法。 我們不使用構造器,而是通過調用`ExecuteReader() `method of the` SqliteCommand` 對象創建`SqliteDataReader`的實例。 在使用`SqlDataReader`時,關聯的`SqlConnection`為`SqlDataReader`服務。 除了關閉`SqlConnection`以外,無法對其進行其他操作。 ```cs using System; using Mono.Data.Sqlite; public class Example { static void Main() { string cs = "URI=file:test.db"; using(SqliteConnection con = new SqliteConnection(cs)) { con.Open(); string stm = "SELECT * FROM Cars LIMIT 5"; using (SqliteCommand cmd = new SqliteCommand(stm, con)) { using (SqliteDataReader rdr = cmd.ExecuteReader()) { while (rdr.Read()) { Console.WriteLine(rdr.GetInt32(0) + " " + rdr.GetString(1) + " " + rdr.GetInt32(2)); } } } con.Close(); } } } ``` 我們從`Cars`表中獲得 5 輛汽車,并將它們打印到控制臺。 ```cs using (SqliteDataReader rdr = cmd.ExecuteReader()) ``` 要創建`SQLiteDataReader`對象,我們必須調用`SqliteCommand`對象的`ExecuteReader()`方法。 ```cs while (rdr.Read()) { Console.WriteLine(rdr.GetInt32(0) + " " + rdr.GetString(1) + " " + rdr.GetInt32(2)); } ``` `Read()`方法將數據讀取器移至下一條記錄。 如果有更多行,則返回`true`;否則,返回`false`。 否則為假。 我們可以使用數組索引符號來檢索值,或者使用特定的方法來訪問其本機數據類型中的列值。 后者效率更高。 ```cs $ mono retrieve.exe 1 Audi 52642 2 Mercedes 57127 3 Skoda 9000 4 Volvo 29000 5 Bentley 350000 ``` `Cars`表的前五行。 我們可以通過字段的列名來檢索字段。 ```cs using System; using Mono.Data.Sqlite; public class Example { static void Main() { string cs = "URI=file:test.db"; using(SqliteConnection con = new SqliteConnection(cs)) { con.Open(); string stm = "SELECT * FROM Cars LIMIT 5"; using (SqliteCommand cmd = new SqliteCommand(stm, con)) { using (SqliteDataReader rdr = cmd.ExecuteReader()) { while (rdr.Read()) { Console.Write("{0} ", rdr["Id"]); Console.Write("{0} ", rdr["Name"]); Console.Write("{0} \n", rdr["Price"]); } } } con.Close(); } } } ``` 該示例從`Cars`表中打印 5 行。 這次我們使用列名來獲取表字段。 ```cs while (rdr.Read()) { Console.Write("{0} ", rdr["Id"]); Console.Write("{0} ", rdr["Name"]); Console.Write("{0} \n", rdr["Price"]); } ``` 數據庫表字段由其列名引用。 ## 多個語句 ADO.NET 規范允許在單個字符串中執行多個語句。 如有查詢,`SqliteDataReader`返回多個結果集。 它具有`NextResult()`方法來瀏覽結果集。 ```cs using System; using Mono.Data.Sqlite; public class Example { static void Main() { string cs = "Data Source=:memory:"; using (SqliteConnection con = new SqliteConnection(cs)) { con.Open(); string stm = "SELECT 25; SELECT 44; SELECT 33"; using (SqliteCommand cmd = new SqliteCommand(stm, con)) { using (SqliteDataReader rdr = cmd.ExecuteReader()) { do { rdr.Read(); Console.WriteLine("{0}", rdr.GetInt32(0)); } while (rdr.NextResult()); } } con.Close(); } } } ``` 我們在一個 SQL 字符串中有三個查詢。 將有三個結果集。 ```cs string stm = "SELECT 25; SELECT 44; SELECT 33"; ``` 有三個`SELECT`語句。 它們之間用分號分隔。 它們每個都將返回一個值。 ```cs do { rdr.Read(); Console.WriteLine("{0}", rdr.GetInt32(0)); } while (rdr.NextResult()); ``` `Read()`方法將`SqliteDataReader`移至下一條記錄。 `GetInt32()`方法將值檢索為 32 位帶符號整數。 `NextResult()`將數據讀取器移至下一個結果。 ```cs $ dmcs multiple.cs -r:Mono.Data.Sqlite.dll $ mono multiple.exe 25 44 33 ``` 運行示例。 我們已經完成了`SqliteDataReader`的數據讀取。
                  <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>

                              哎呀哎呀视频在线观看