欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

一文簡單了解C#?中的DataSet類

 更新時間:2022年08月30日 09:07:35   作者:IC00  
這篇文章主要介紹了一文簡單了解C#?中的DataSet類,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下

前言

今天我們一起學習一下DataSet類,DataSet類官方的表示是這樣的:"表示數(shù)據(jù)的內(nèi)存中緩存",大致意思就是我們把數(shù)據(jù)去取出來,然后把數(shù)據(jù)給DataSet,再對DataSet做數(shù)據(jù)處理,這樣似乎可以對數(shù)據(jù)做更快的處理,相當于一個臨時的數(shù)據(jù)庫,數(shù)據(jù)是從數(shù)據(jù)庫檢索的記錄的緩存,數(shù)據(jù)集DataSet中不僅包含一個或多個表,還可以包括數(shù)據(jù)表之間的關系和約束。允許將不同類型的數(shù)據(jù)表復制到同一個數(shù)據(jù)集中,甚至還允許將數(shù)據(jù)表與XML文檔組合到一起協(xié)同操作。數(shù)據(jù)集從數(shù)據(jù)源中獲取數(shù)據(jù)以后就斷開了與數(shù)據(jù)源之間的連接。允許在數(shù)據(jù)集中定義數(shù)據(jù)約束和表關系,增添、刪除和編輯記錄,還可以對數(shù)據(jù)集中的數(shù)據(jù)進行查詢、統(tǒng)計等。當完成各項數(shù)據(jù)操作后,還可以將數(shù)據(jù)集中的最新數(shù)據(jù)更新到數(shù)據(jù)源。

DataSet屬性和方法

//屬性
CaseSensitive ? 
//獲取或設置一個值,該值指示 DataTable 對象中的字符串比較是否區(qū)分大小寫。
Container ? 
//獲取組件的容器。
(DataSetName ? ?
//獲取或設置當前 DataSet 的名稱。
DefaultViewManager ?
//獲取 DataSet 所包含的數(shù)據(jù)的自定義視圖,以允許使用自定義的 DataViewManager 進行篩選、搜索和導航。
DesignMode ?
//獲取指示組件當前是否處于設計模式的值。
(EnforceConstraints 
//獲取或設置一個值,該值指示在嘗試執(zhí)行任何更新操作時是否遵循約束規(guī)則。
Events ?
//獲取附加到該組件的事件處理程序的列表。
(ExtendedProperties 
//獲取與 DataSet 相關的自定義用戶信息的集合。
HasErrors ? 
//獲取一個值,指示在此 DataTable 中的任何 DataSet 對象中是否存在錯誤。
IsInitialized ? 
//獲取一個值,該值指示是否已初始化 DataSet。
Locale ?
//獲取或設置用于比較表中字符串的區(qū)域設置信息。
Namespace ? 
//獲取或設置 DataSet 的命名空間。
Prefix ?
//獲取或設置一個 XML 前綴,該前綴是 DataSet 的命名空間的別名。
Relations ? 
//獲取用于將表鏈接起來并允許從父表瀏覽到子表的關系的集合。
RemotingFormat ?
//獲取或設置遠程處理期間使用的序列化格式 DataSet 。
SchemaSerializationMode 
//獲取或設置 SchemaSerializationMode 的 DataSet。
Site ? ?
//獲取或設置 ISite 的 DataSet。
Tables ?
//獲取包含在 DataSet 中的表的集合。
//方法
AcceptChanges() 
//提交自加載此 DataSet 或上次調(diào)用 AcceptChanges() 以來對其進行的所有更改。
BeginInit() 
//開始初始化在窗體上使用或由另一個組件使用的 DataSet。 初始化發(fā)生在運行時。
Clear() 
//通過移除所有表中的所有行來清除任何數(shù)據(jù)的 DataSet。
Clone() 
復制 DataSet 的結構,包括所有 DataTable 架構、關系和約束。 不要復制任何數(shù)據(jù)。
Copy() ?
復制該 DataSet 的結構和數(shù)據(jù)。
CreateDataReader() ?
為每個 DataTableReader 返回帶有一個結果集的 DataTable,順序與 Tables 集合中表的顯示順序相同。
CreateDataReader(DataTable[]) ? 
為每個 DataTableReader 返回帶有一個結果集的 DataTable。
DetermineSchemaSerializationMode(SerializationInfo, StreamingContext) ? 
確定 SchemaSerializationMode 的 DataSet。
DetermineSchemaSerializationMode(XmlReader) 
確定 SchemaSerializationMode 的 DataSet。
Dispose() ? 
釋放由 MarshalByValueComponent 使用的所有資源。
(Dispose(Boolean) ? 
釋放由 MarshalByValueComponent 占用的非托管資源,還可以另外再釋放托管資源。
(EndInit() ?
結束在窗體上使用或由另一個組件使用的 DataSet 的初始化。 初始化發(fā)生在運行時。
Equals(Object) ?
確定指定對象是否等于當前對象。
GetChanges() ? ?
獲取 DataSet 的副本,該副本包含自加載以來或自上次調(diào)用 AcceptChanges() 以來對該數(shù)據(jù)集進行的所有更改。
GetChanges(DataRowState) ? ?
獲取由 DataRowState 篩選的 DataSet 的副本,該副本包含上次加載以來或調(diào)用 AcceptChanges() 以來進行的所有更改。
GetDataSetSchema(XmlSchemaSet) ?
獲取數(shù)據(jù)集的 XmlSchemaSet 的副本。
GetHashCode() ? 
作為默認哈希函數(shù)。
GetObjectData(SerializationInfo, StreamingContext) ?
使用序列化 DataSet 時所需的數(shù)據(jù)填充序列化信息對象。
GetSchemaSerializable() 
返回一個可序列化的 XmlSchema 實例。
GetSerializationData(SerializationInfo, StreamingContext) ? 
從二進制或 XML 流反序列化表數(shù)據(jù)。
GetService(Type) ? ?
獲取 IServiceProvider 的實施者。
(GetType() ?
獲取當前實例的 Type。
GetXml() ? ?
返回存儲在 DataSet 中的數(shù)據(jù)的 XML 表示形式。
GetXmlSchema() ?
返回存儲在 DataSet 中的數(shù)據(jù)的 XML 表示形式的 XML 架構。
HasChanges() ? ?
獲取一個值,該值指示 DataSet 是否有更改,包括新增行、已刪除的行或已修改的行。
HasChanges(DataRowState) ? ?
獲取一個值,該值指示 DataSet 是否有 DataRowState 被篩選的更改,包括新增行、已刪除的行或已修改的行。
InferXmlSchema(Stream, String[]) ? ?
將指定 Stream 中的 XML 架構應用于 DataSet。
InferXmlSchema(String, String[]) ? ?
將指定文件中的 XML 架構應用于 DataSet。
InferXmlSchema(TextReader, String[]) ? ?
將指定 TextReader 中的 XML 架構應用于 DataSet。
InferXmlSchema(XmlReader, String[]) 
將指定 XmlReader 中的 XML 架構應用于 DataSet。
InitializeDerivedDataSet() ?
從二進制或 XML 流反序列化數(shù)據(jù)集的所有表數(shù)據(jù)。
IsBinarySerialized(SerializationInfo, StreamingContext) 
檢查 DataSet 的序列化表示形式的格式。
Load(IDataReader, LoadOption, DataTable[]) ?
使用提供的 DataSet 以數(shù)據(jù)源的值填充 IDataReader,同時使用 DataTable 實例的數(shù)組提供架構和命名空間信息。
Load(IDataReader, LoadOption, FillErrorEventHandler, DataTable[]) ? 
使用提供的 DataSet 以數(shù)據(jù)源的值填充 IDataReader,同時使用 DataTable 實例的數(shù)組提供架構和命名空間信息。
Load(IDataReader, LoadOption, String[]) 
使用所提供的 DataSet,并使用字符串數(shù)組為 DataSet 中的表提供名稱,從而用來自數(shù)據(jù)源的值填充 IDataReader。
MemberwiseClone() ? 
創(chuàng)建當前 Object 的淺表副本。
Merge(DataRow[]) ? ?
將 DataRow 對象數(shù)組合并到當前的 DataSet 中。
Merge(DataRow[], Boolean, MissingSchemaAction) ?
將 DataRow 對象數(shù)組合并到當前的 DataSet 中,在此過程中,將根據(jù)給定的參數(shù)保留或放棄在 DataSet 中進行的更改并處理不兼容的架構。
Merge(DataSet) ?
將指定的 DataSet 及其架構合并到當前 DataSet 中。
Merge(DataSet, Boolean) 
將指定的 DataSet 及其架構合并到當前 DataSet 中,在此過程中,將根據(jù)給定的參數(shù)保留或放棄在此 DataSet 中進行的任何更改。
Merge(DataSet, Boolean, MissingSchemaAction) ? ?
將指定的 DataSet 及其架構與當前的 DataSet 合并,在此過程中,將根據(jù)給定的參數(shù)保留或放棄在當前 DataSet 中的更改并處理不兼容的架構。
Merge(DataTable) ? ?
將指定的 DataTable 及其架構合并到當前 DataSet 中。
Merge(DataTable, Boolean, MissingSchemaAction) ?
將指定的 DataTable 及其架構合并到當前的 DataSet 中,在此過程中,將根據(jù)給定的參數(shù)保留或放棄在 DataSet 中進行的更改并處理不兼容的架構。
OnPropertyChanging(PropertyChangedEventArgs) ? ?
引發(fā) OnPropertyChanging(PropertyChangedEventArgs) 事件。
OnRemoveRelation(DataRelation) ?
當從 DataRelation 中移除 DataTable 對象時發(fā)生。
OnRemoveTable(DataTable) ? ?
當從 DataTable 中移除 DataSet 時發(fā)生。
RaisePropertyChanging(String) ? 
發(fā)送指定的 DataSet 屬性將要更改的通知。
ReadXml(Stream) 
使用指定的 Stream 將 XML 架構和數(shù)據(jù)讀入 DataSet。
ReadXml(Stream, XmlReadMode) ? ?
使用指定的 DataSet 和 Stream 將 XML 架構和數(shù)據(jù)讀入 XmlReadMode。
ReadXml(String) 
使用指定的文件將 XML 架構和數(shù)據(jù)讀入 DataSet。
ReadXml(String, XmlReadMode) ? ?
使用指定的文件和 DataSet 將 XML 架構和數(shù)據(jù)讀入 XmlReadMode。
ReadXml(TextReader) 
使用指定的 TextReader 將 XML 架構和數(shù)據(jù)讀入 DataSet。
ReadXml(TextReader, XmlReadMode) ? ?
使用指定的 DataSet 和 TextReader 將 XML 架構和數(shù)據(jù)讀入 XmlReadMode。
ReadXml(XmlReader) ?
使用指定的 XmlReader 將 XML 架構和數(shù)據(jù)讀入 DataSet。
ReadXml(XmlReader, XmlReadMode) 
使用指定的 DataSet 和 XmlReader 將 XML 架構和數(shù)據(jù)讀入 XmlReadMode。
ReadXmlSchema(Stream) ? 
從指定的 Stream 中將 XML 架構讀入 DataSet。
ReadXmlSchema(String) ? 
從指定的文件中將 XML 架構讀入 DataSet。
ReadXmlSchema(TextReader) ? 
從指定的 TextReader 中將 XML 架構讀入 DataSet。
ReadXmlSchema(XmlReader) ? ?
從指定的 XmlReader 中將 XML 架構讀入 DataSet。
ReadXmlSerializable(XmlReader) ?
忽略特性并返回一個空的數(shù)據(jù)集。
RejectChanges() 
回滾自創(chuàng)建 DataSet 以來或上次調(diào)用 AcceptChanges() 以來對其進行的所有更改。
Reset() 
清除所有表并從 DataSet 中刪除所有關系、外部約束和表。 子類應重寫 Reset(),以便將 DataSet 還原到其原始狀態(tài)。
ShouldSerializeRelations() ?
獲取一個值,該值指示是否應該保持 Relations 屬性。
ShouldSerializeTables() 
獲取一個值,該值指示是否應該保持 Tables 屬性。
ToString() ?
返回包含 Component 的名稱的 String(如果有)。 不應重寫此方法。
(WriteXml(Stream) ? 
使用指定的 DataSet 為 Stream 寫當前數(shù)據(jù)。
WriteXml(Stream, XmlWriteMode) ?
使用指定的 Stream 和 XmlWriteMode 寫入 DataSet 的當前數(shù)據(jù)和架構(可選)。 若要寫入架構,請將 mode 參數(shù)的值設置為 WriteSchema。
WriteXml(String) ? ?
將 DataSet 的當前數(shù)據(jù)寫入指定的文件。
WriteXml(String, XmlWriteMode) ?
使用指定的 XmlWriteMode 將 DataSet 的當前數(shù)據(jù)和架構(可選)寫入指定的文件。 若要寫入架構,請將 mode 參數(shù)的值設置為 WriteSchema。
WriteXml(TextWriter) ? ?
使用指定的 DataSet 為 TextWriter 寫當前數(shù)據(jù)。
WriteXml(TextWriter, XmlWriteMode) ?
使用指定的 TextWriter 和 XmlWriteMode 寫入 DataSet 的當前數(shù)據(jù)和架構(可選)。 若要寫入架構,請將 mode 參數(shù)的值設置為 WriteSchema。
WriteXml(XmlWriter) 
將 DataSet 的當前數(shù)據(jù)寫入指定的 XmlWriter。
WriteXml(XmlWriter, XmlWriteMode) ? 
使用指定的 XmlWriter 和 XmlWriteMode 寫入 DataSet 的當前數(shù)據(jù)和架構(可選)。 若要寫入架構,請將 mode 參數(shù)的值設置為 WriteSchema。
WriteXmlSchema(Stream) ?
將 DataSet 結構作為 XML 架構寫入指定的 Stream 對象。
WriteXmlSchema(Stream, Converter<Type,String>) ?
將 DataSet 結構作為 XML 架構寫入指定的 Stream 對象。
WriteXmlSchema(String) ?
將 XML 架構形式的 DataSet 結構寫入文件。
WriteXmlSchema(String, Converter<Type,String>) ?
將 XML 架構形式的 DataSet 結構寫入文件。
WriteXmlSchema(TextWriter) ?
將 DataSet 結構作為 XML 架構寫入指定的 TextWriter 對象。
WriteXmlSchema(TextWriter, Converter<Type,String>)
將 DataSet 結構作為一個 XML 架構寫入指定的 TextWriter。
WriteXmlSchema(XmlWriter) ? 
將 XML 架構形式的 DataSet 結構寫入 XmlWriter 對象。
WriteXmlSchema(XmlWriter, Converter<Type,String>)
將 DataSet 結構作為一個 XML 架構寫入指定的 XmlWriter。

(方法較多建議收藏,方便以后查看)

界面設計

 

效果展示

我只是對數(shù)據(jù)的復制,清空做了簡單的操作,我們只要記住 ,使用SQLiteDataAdapter下面的Fill()方法是對數(shù)據(jù)封裝,要使用具體的那個Table的數(shù)據(jù)就Table[0],一個DataSet可以有多張表,也就是多個Table,Table[0],Table[1].....再使用方法對數(shù)據(jù)進行操作

代碼邏輯

只是做了一個簡單的操作,我們可以根據(jù)方法,實現(xiàn)更多更高級的效果,這里只是簡單操作一下,要深究可能兩篇文章都不一定講的清楚。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SQLite;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
?
namespace SQlite
{
 ?  public partial class Form1 : Form
 ?  {
 ? ? ?  string connectionString = "data source=" + @"C:\Users\ASUS\Desktop\IC00\IC00.db";//必須IC00.db 用絕對路徑,你的數(shù)據(jù)庫路徑
?
 ? ? ?  public Form1()
 ? ? ?  {
 ? ? ? ? ?  InitializeComponent();
 ? ? ?  }
 ? ? ?  private void button1_Click(object sender, EventArgs e)
 ? ? ?  {
 ? ? ? ? ?  string sql = "select * from IC";//sql查詢語句
 ? ? ? ? ?  DataSet data = Select(sql);//調(diào)用查詢函數(shù)
 ? ? ? ? ?  DataSet dataSet = new DataSet();
 ? ? ? ? ?  dataSet = data.Copy();//復制數(shù)據(jù)
 ? ? ? ? //  dataSet = data.Clone();//復制結構,意思就是不復制數(shù)據(jù),復制表的結構,包括表頭
 ? ? ? ? ? // dataSet.Clear();//數(shù)據(jù)清理,只清空數(shù)據(jù),不對結構清空
 ? ? ? ? ? dataSet.Reset();
 ? ? ? ? ?  dataGridView1.DataSource = data.Tables[0];//數(shù)據(jù)源為表格0也就是一個表
 ? ? ? ? ?  dataGridView2.DataSource = dataSet.Tables[0];
 ? ? ?  }
 ? ? ?  public DataSet Select(string SQL)
 ? ? ?  {
 ? ? ? ? ?  using (SQLiteConnection conn = new SQLiteConnection(connectionString))
 ? ? ? ? ?  {
 ? ? ? ? ? ? ?  DataSet ds = new DataSet();
 ? ? ? ? ? ? ?  try
 ? ? ? ? ? ? ?  {
 ? ? ? ? ? ? ? ? ?  conn.Open();//打開數(shù)據(jù)庫連接
 ? ? ? ? ? ? ? ? ?  SQLiteDataAdapter com = new SQLiteDataAdapter(SQL, conn);//執(zhí)行SQL語句
 ? ? ? ? ? ? ? ? ?  com.Fill(ds, "ds");//將所以數(shù)據(jù)封裝為一個表
 ? ? ? ? ? ? ?  }
 ? ? ? ? ? ? ?  catch (System.Data.SQLite.SQLiteException ex)
 ? ? ? ? ? ? ?  {
 ? ? ? ? ? ? ? ? ?  throw new Exception(ex.Message);
 ? ? ? ? ? ? ?  }
 ? ? ? ? ? ? ?  return ds;
 ? ? ? ? ?  }
 ? ? ?  }
 ? ? ? 
 ?  }
}

到此這篇關于一文簡單了解C# 中的DataSet類的文章就介紹到這了,更多相關 C# DataSet類內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • springboot集成mybatis實例代碼

    springboot集成mybatis實例代碼

    本篇文章主要介紹了springboot集成mybatis實例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-04-04
  • springboot中server.ssl.key-store配置路徑的問題小結

    springboot中server.ssl.key-store配置路徑的問題小結

    這篇文章主要介紹了springboot中server.ssl.key-store配置路徑的問題,文中還記錄了Spring Boot SSL(https)實例,介紹在web程序中使用自簽名的SSL(HTTPS)證書及創(chuàng)建SSL認證,感興趣的朋友跟隨小編一起看看吧
    2024-02-02
  • 淺談springboot項目中定時任務如何優(yōu)雅退出

    淺談springboot項目中定時任務如何優(yōu)雅退出

    這篇文章主要介紹了淺談springboot項目中定時任務如何優(yōu)雅退出?具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • Gradle build 報錯:Received status code 400 from server

    Gradle build 報錯:Received status code 400 from server

    這篇文章主要介紹了Gradle build 報錯:Received status code 400 from server,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-07-07
  • 一文精通Java中的volatile關鍵字

    一文精通Java中的volatile關鍵字

    volatile是java中的關鍵詞之一,這篇文章主要給大家介紹了關于Java中volatile關鍵字的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Java具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-05-05
  • java實現(xiàn)酒店管理系統(tǒng)

    java實現(xiàn)酒店管理系統(tǒng)

    這篇文章主要為大家詳細介紹了java實現(xiàn)酒店管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • 詳解如何在springcloud分布式系統(tǒng)中實現(xiàn)分布式鎖

    詳解如何在springcloud分布式系統(tǒng)中實現(xiàn)分布式鎖

    最近在看分布式鎖的資料,本文就介紹一下利用springcloud結合redis實現(xiàn)分布式鎖,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • Java不可不知的泛型使用示例代碼

    Java不可不知的泛型使用示例代碼

    這篇文章主要介紹了Java不可不知的泛型使用,本文通過實例代碼給大家介紹了java的泛型的基本使用,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08
  • SpringBoot詳細探究講解默認組件掃描

    SpringBoot詳細探究講解默認組件掃描

    在項目中我們創(chuàng)建了Controller,這個Controller是如何被spring自動加載的呢?為什么Controller必須放在啟動類的同級目錄下呢
    2022-06-06
  • IDEA的spring項目使用@Qualifier飄紅問題及解決

    IDEA的spring項目使用@Qualifier飄紅問題及解決

    這篇文章主要介紹了IDEA的spring項目使用@Qualifier飄紅問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11

最新評論